数组是一种类列表对象,它的原型中提供了遍历和修改元素的相关操作。
创建
方法1:(常用)
[element0, element1, ..., elementN]
方法2:
new Array(element0, element1[, ...[, elementN]])
方法3:
new Array(arrayLength)
方法4:
Array.of(element0, element1)
扩展运算
扩展运算符(spread)是三个点(...)。它好比 rest 参数的逆运算,将一个数组转为用逗号分隔的参数序列。扩展运算符内部调用的是数据结构的Iterator
接口。
1. 函数调用
let item = ['js', 'java', 'c++'];
console.log(...item); // js java c++
2. 拷贝
直接赋值,item2指向数据的指针
let item1 = [1,2];
let item2 = item1;
使用扩展运算符实现浅拷贝
let item1 = [1,2];
// 写法1:
let item2 = [...item1];
// 写法2:
let [...item2] = item1;
3. 合并
let item1 = [1,2];
let item2 = [3,4];
// es5
let item3 = item1.concat(item2);
// es6
let item3 = [...item, ...item2];
4. 解构
let [first,...other] = [1,2,3,4,5];
console.log(first) // 1
console.log(other) // [2,3,4,5]
5. 字符串
扩展运算符可以将字符串转为真正的数组
let item = [...'string'];
console.log(item) // ["s", "t", "r", "i", "n", "g"]
6. 替代函数apply方法
扩展运算符可以展开数组,可以直接将数组转为函数的参数
function f(x, y, z) {
}
let args = [0, 1, 2];
// es5
f.apply(null, args);
// es6
f(...args);
push函数运用
// ES5
var arr1 = [0, 1, 2];
var arr2 = [3, 4, 5];
Array.prototype.push.apply(arr1, arr2);
// ES6
let arr1 = [0, 1, 2];
let arr2 = [3, 4, 5];
arr1.push(...arr2);
版权声明:本文为博主原创文章,转载请添加原文地址 https://www.qianduan7.com/javascript/javascript-array-spread.html