Javascript数组扩展/rest
示例
点差运算符
使用ES6,您可以使用点差将各个元素分隔为以逗号分隔的语法:
let arr = [1, 2, 3, ...[4, 5, 6]]; //[1、2、3、4、5、6] // in ES < 6, the operations above are equivalent to arr = [1, 2, 3]; arr.push(4, 5, 6);
扩展运算符还对字符串起作用,将每个单独的字符分成一个新的字符串元素。因此,使用数组函数将它们转换为整数,上面创建的数组等效于下面的数组:
let arr = [1, 2, 3, ...[..."456"].map(x=>parseInt(x))]; //[1、2、3、4、5、6]
或者,可以使用单个字符串将其简化为:
let arr = [..."123456"].map(x=>parseInt(x)); //[1、2、3、4、5、6]
如果未执行映射,则:
let arr = [..."123456"]; // ["1", "2", "3", "4", "5", "6"]
传播运算符还可用于将参数传播到函数中:
function myFunction(a, b, c) { } let args = [0, 1, 2]; myFunction(...args); // in ES < 6, this would be equivalent to: myFunction.apply(null, args);
休息员
其余算子通过将多个元素合并为一个算子来执行与散布算子相反的操作
[a, b, ...rest] = [1, 2, 3, 4, 5, 6]; //剩下的被分配[3,4,5,6]
收集函数的参数:
function myFunction(a, b, ...rest) { console.log(rest); } myFunction(0, 1, 2, 3, 4, 5, 6); //其余为[2、3、4、5、6]