← 返回目录

扩展运算符

... 把数组“炸开”成一个一个的值,用于合并、克隆、传参。

1. 合并数组

以前 · concat 现在 · 扩展运算符
let a = ["王太利", "肖央"];
let b = ["曾毅", "玲花"];
let c = a.concat(b);
console.log(c);
// ["王太利","肖央","曾毅","玲花"]
let a = ["王太利", "肖央"];
let b = ["曾毅", "玲花"];
let c = [...a, ...b];
console.log(c);
// ["王太利","肖央","曾毅","玲花"]

2. 克隆数组

以前 · slice 现在 · 扩展运算符
let arr = ["E", "G", "M"];
let copy = arr.slice();
console.log(copy);
// ["E","G","M"]
let arr = ["E", "G", "M"];
let copy = [...arr];
console.log(copy);
// ["E","G","M"]

3. 展开传参

以前 现在
let nums = [3, 9, 5, 1];
console.log(Math.max(
  nums[0], nums[1],
  nums[2], nums[3]
));
// 9
let nums = [3, 9, 5, 1];
console.log(Math.max(...nums));
// 9(数组展开成一个一个参数)

4. 伪数组转真数组

以前 现在
let divs = document.querySelectorAll("div");
let arr = Array.prototype.slice.call(divs);
let divs = document.querySelectorAll("div");
let arr = [...divs];
// 一行转成真数组,可用数组方法
扩展运算符 = 把数组拆开成逗号分隔的值,是 rest(收集)的逆运算