1、结合扩展运算符
//剩余参数是做聚合的,扩展运算符是做展开的 function sum(...args){ console.log(arguments); console.log(arguments instanceof Array); //false 因为它是一个类数组对象 //以下代码均可将类数组转成数组 //let args = Array.prototype.slice.call(arguments); //let args = [...arguments]; //let [...args] = arguments; //或者在函数参数的前面加三个点,即剩余参数 console.log(args); // [1,2,321,4354,'fdafsd'] } sum(1,2,321,4354,'fdafsd');
2、有多个参数时
//有多个参数时 function op(type, ...nums){ console.log(type); //sum console.log(nums); //[1, 23, 454, 3, 67, 234] } op('sum', 1, 23, 454, 3, 67, 234);
3、剩余参数必须是参数中的最后一位,否则报错
//需要注意的是,剩余参数必须是最后一位,否则会报错,例如: function op(type, b, ...nums, d){ console.log(type); console.log(nums); //Rest parameter must be last formal parameter } op('sum', 1, 23, 454, 3, 67, 234);
4、剩余参数和reduce函数结合
//用剩余参数和reduce函数结合,使参数相加 function sum1(...numbers){ return numbers.reduce(function(a,b){ return a + b; },0); } console.log(sum1(1,2,3,4)) //10
4.1
reduce函数的第一个参数是回调函数,第二个参数是表示第一次遍历的值为多少。回调函数中的两个参数,a表示上一次return的值,b表示这次遍历到的一个项,