Skip to content

创建数组

创建数组的方式有:使用数组字面量、对可迭代对象使用扩展操作符、使用构造函数或使用 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 ]