Es6剩余参数&数组展开

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

function sum(a,...num){
	console.log(a);
	console.log(num);
}
sum(1,2,3,4,5,7)

可以看到sum函数只明确接收一个a ,其他的参数不确定要传多少,这里就通过…num的形式使num接收剩余的参数
Es6剩余参数&数组展开_第1张图片
在es6之前我们接收不确定参数时我们通过arguments

function sum(){
	console.log(arguments)
}
sum(1,2,3,4,5,7)

Es6剩余参数&数组展开_第2张图片
有了es6这个特性后我们可以做如下案例
求一个数和任意数的和

function sum(a,...num){
	console.log(num.reduce((tmp,item)=>tmp+item)+a)
}
sum(10,10,10,10,10,10)//60

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

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

let arr =[1,2,3]

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

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

//以前的方法
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]

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

let arr =[1,2,3]
function sum(a,b,c){
	console.log(a+b+c);
}
sum(...arr);

你可能感兴趣的:(Es6)