扩展运算符 - es5VSes6运用
扩展运算符 - push
var arr1 = [0, 1, 2];
var arr2 = [3, 4, 5];
let a = Array.prototype.push.apply(arr1, arr2);
console.log(a) // 6
console.log(arr1) // [0, 1, 2, 3, 4, 5]
console.log(arr2) // [3, 4, 5]
let arr1 = [0, 1, 2];
let arr2 = [3, 4, 5];
let a = arr1.push(...arr2);
console.log(a) // 6
console.log(arr1) // [0, 1, 2, 3, 4, 5]
console.log(arr2) // [3, 4, 5]
复制数组
const a1 = [1, 2];
const a2 = a1.concat();
a2[0] = 3;
console.log(a1) // [1, 2]
const a1 = [1, 2];
const a2 = [...a1];
a2[0] = 3;
console.log(a1) // [1,2]
console.log(a1) // [1,2]
const a1 = [1, 2];
const a2 = a1;
a2[0] = 3;
console.log(a1) // [3, 2]
合并数组
const arr1 = ['a', 'b'];
const arr2 = ['c'];
const arr3 = ['d', 'e'];
// ES5 的合并数组
let a = arr1.concat(arr2, arr3);
console.log(a) //["a", "b", "c", "d", "e"]
const arr1 = ['a', 'b'];
const arr2 = ['c'];
const arr3 = ['d', 'e'];
// ES5 的合并数组
let a = [...arr1, ...arr2, ...arr3]
console.log(a) //["a", "b", "c", "d", "e"]
如果将扩展运算符用于数组赋值,只能放在参数的最后一位,否则会报错
const [...butLast, last] = [1, 2, 3, 4, 5]; // 报错 const [first, ...middle, last] = [1, 2, 3, 4, 5]; // 报错
const [first, ...rest] = [1, 2, 3, 4, 5]; first // 1 rest // [2, 3, 4, 5] const [first, ...rest] = []; first // undefined rest // [] const [first, ...rest] = ["foo"]; first // "foo" rest // []
扩展运算符还可以将字符串转为真正的数组。
[...'hello'] // [ "h", "e", "l", "l", "o" ]
浙公网安备 33010602011771号