数组是一种类列表对象,它的原型中提供了遍历和修改元素的相关操作。

创建


方法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);
版权声明:本文为博主原创文章,转载请添加原文地址
暂无评论