创建数组
创建数组的方式有:使用数组字面量、对可迭代对象使用扩展操作符、使用构造函数或使用 ES6 新增的Array.of()
、Array.from()
。
数组字面量
ts
const resOfEle = [1, 2, 3, 4, 5]; // 创建包含指定元素的数组
const resOfEmpty = []; // 创建一个空数组
扩展操作符
扩展操作符可对于任何可迭代对象(可使用for-of
循环遍历的对象)使用,将其复制(浅)为数组。
ts
const resOfExt = [1, ...[2, 3, 4], 5]; // [ 1, 2, 3, 4, 5 ]
const resOfExtStr = [..."Array"]; // [ 'A', 'r', 'r', 'a', 'y' ]
构造函数
ts
const resOfConEle = new Array(1, 2, 3, 4, 5); // 创建包含指定元素的数组
const resOfConEmpty = new Array(5); // 创建一个长度为5的数组,元素都是undefined
Array.from()
字符串会被拆分为单字符数组。
ts
const resOfArrFrom = Array.from("Array"); // [ 'A', 'r', 'r', 'a', 'y' ]
可以使用Array.from()
将类数组对象(拥有一个length
属性和索引元素)或可迭代(Map、Set 或字符串)对象转换为新数组。
ts
const resOfArrMap = Array.from(new Map().set("age", 18)); // [ [ 'age', 18 ] ]
const resOfArrSet = Array.from(new Set([1, 2, 3, 4, 5])); // [ 1, 2, 3, 4, 5 ]
const resOfArrObj = Array.from({ length: 5 }, (curr, index) => index + 1);
Array.from()
还可以接受第二个参数,用于处理数组中的每个元素。
ts
const resOfArrFromFun = Array.from([1, 2, 3], (x) => x * 2); // [ 2, 4, 6 ]
Array.of()
ts
const resOfArrOf = Array.of(1, 2, 3, 4, 5); // [ 1, 2, 3, 4, 5 ]