展开运算符
使用方式: …要展开的东西 和剩余参数的写法相同,只是使用在不同的场景
1. 对数组展开es6
function sum(...args) {
// args收集了所有的参数,形成的要一个数组(这里是剩余参数的用法)
let sum = 0;
for (let i = 0; i < args.length; i++) {
sum += args[i];
}
return sum;
}
对于下面的场景
/**
* 获取一个指定长度的随机数组成的数组
* @param {*} length
*/
function getRandomNumber(length) {
const arr = [];
for (let i = 0; i < length; i++) {
arr.push(Math.random());
}
return arr;
}
const numbers = getRandomNumber(10);
console.log(numbers)
sum(mumber)
显然是错误的,它需要展开传递参数,而不能传个数组。
将数组的每一项展开,依次作为参数传递,而不是把整个数组作为参数传递
这里就可以用到展开运算符:
sum(...numbers); //相当于传递了10个参数
数组里到底有多少个参数,不确定的情况