Es6参数展开&剩余参数

2022-09-08 15:20:08 浏览数 (1)

Es6中我们可以通过... 变量的方式存储函数剩余的参数,该变量是包含剩余参数的数组

代码语言:javascript复制
function sum(a,...num){
    console.log(a);
    console.log(num);
}
sum(1,2,3,4,5,7)

可以看到sum函数只明确接收一个a ,其他的参数不确定要传多少,这里就通过...num的形式使num接收剩余的参数

在es6之前我们接收不确定参数时我们通过arguments

代码语言:javascript复制
function sum(){
    console.log(arguments)
}
sum(1,2,3,4,5,7)

有了es6这个特性后我们可以做如下案例 求一个数和任意数的和

代码语言:javascript复制
function sum(a,...num){
    console.log(num.reduce((tmp,item)=>tmp item) a)
}
sum(10,10,10,10,10,10)//60

注意剩余参数必须是最后一个

...还可应用到数组 ...应用到数组会将数组展开

代码语言:javascript复制
let arr =[1,2,3]

console.log(...arr)
//1 2 3

由此我们可以想到...可以直接拼接数组

代码语言:javascript复制
//以前的方法
let arr =[1,2,3]
let arr2 = [4,5,6]
console.log(arr.concat(arr2));//[1,2,3,4,5,6]
//...展开数组
let arr3 = [7,8,9]
let arr4 = [10,11,12]
console.log([...arr3,...arr4]);//[7,8,9,10,11,12]

如果要传递一个数组给函数,并且这个数组需要遍历

代码语言:javascript复制
let arr =[1,2,3]
function sum(a,b,c){
    console.log(a b c);
}
sum(...arr);

0 人点赞