Array 【javascript】
构造数组
console.log(Array("1", "2")); //[ '1', '2' ]
console.log(new Array(5)); //[ <5 empty items> ]
console.log(Array.of(1, 2, 3)); //[1,2,3]
length属性
console.log([1, 2, 3].length); //3
从 String\Map\Set 转为 Array
let map = new Map().set("hi", 1).set("lp", 0);
console.log(map);
let set = new Set().add(1).add(2).add(1, 2);
console.log(set); //1 2
console.log(Array.from("hello")); //[ 'h', 'e', 'l', 'l', 'o' ]
console.log(Array.from(map)); //[ [ 'hi', 1 ], [ 'lp', 0 ] ]
console.log(Array.from(set)); //[ 1, 2 ]
带有length属性的对象 转为 Array
console.log(Array.from({
0: 1,
1: 2,
2: 3,
length: 3
})); //[1,2,3]
Array.from(array,fun)
let x = [1, 2, 3];
console.log(Array.from(x, number => number + 2)); //[3,4,5]
arguments对象转array
function test() {
console.log(arguments); //[Arguments] { '0': 1, '1': 2, '2': { l: 1 } }
console.log(Array.from(arguments)); //[ 1, 2, { l: 1 } ]
}
test(1, 2, {
l: 1
});
Array.of(…args) 将参数转为Array
console.log(Array.of(1, 2, 4)); //[1,2,4]
//map
console.log(Array.of(1, 2, 3).map((v, i) => {
return v + i;
})); //[1,3,5]
join
console.log(x.join('-')); //1-2-3
数组空位
x = [1, , 2, 3];
console.log(x[1]); //undefined
//map()会跳过空位置
//join()会视空位置为空字符串
x = [1, 2, 3];
x[5] = 9;
console.log(x); //[ 1, 2, 3, <2 empty items>, 9 ]
console.log(x.length); //6
检测数组
x = [1, 2, 3];
console.log(Array.isArray(x)); //true
``
## 迭代器 keys() values() entries()
```js
x = [1, 2, 3];
console.log(x.keys()); //[0, 1, 2]
console.log(x.values()); //[1,2,3]
console.log(x.entries()); //[[0,1],[1,2],[2,3]]
for (const [v, i] of x.entries()) {
console.log([v, i]); //[0,1] [1,2] [2,3]
}
数组析构
x = [1, 2];
const [a, b] = [...x];
console.log(a, b); //1 2
…正在更新中