方法列表
from
Array.from 方法对一个类似数组或可迭代对象创建一个新的,浅拷贝的数组实例。
Array.from 可以通过以下方式来创建数组对象:
- 伪数组对象(拥有一个
length属性和若干索引属性的任意对象,如pushslicesplice) - 可迭代对象(可以获取对象中的元素,如
Map和Set等,也可以理解成带有[Symbol.iterator]对象)
参数说明
from (arrayLike: string | 伪数组对象 | 可迭代对象,mapFn: function,thisArg: ThisType,) return // 一个新的数组实例
| 参数名 | 是否必填 | 类型 | 说明 |
|---|---|---|---|
| arrayLike | 是 | string | 伪数组对象 | 可迭代对象 | 需要转换成数组的对象 |
| mapFn | 否 | funciton | 新数组中的每个元素会执行该回调函数 |
| thisArg | 否 | ThisType | 执行回调函数 mapFn时 this对象 |
示例
// 从 String 生成数组Array.from('foo') // [ "f", "o", "o" ]// 从 Set 生成数组const set = new Set(['foo', 'bar', 'baz', 'foo'])Array.from(set) // [ "foo", "bar", "baz" ]// 从 Map 生成数组const map = new Map([[1, 2], [2, 4], [4, 8]])Array.from(map) // [[1, 2], [2, 4], [4, 8]]const mapper = new Map([['1', 'a'], ['2', 'b']])Array.from(mapper.values()) // ['a', 'b']Array.from(mapper.keys()) // ['1', '2']// 从类数组对象(arguments)生成数组function f() {return Array.from(arguments)}f(1, 2, 3) // [ 1, 2, 3 ]
巧用
当我们想要创建一个指定长度并且根据索引值来生成数组数据时
const arr = Array.from({ length: 10 },(_, index) => `我是第${index}项`, // 这里对应数组中的 map 函数)console.log(arr)/*** [* "我是第0项",* "我是第1项",* "我是第2项",* "我是第3项",* "我是第4项",* "我是第5项",* "我是第6项",* "我是第7项",* "我是第8项",* "我是第9项",* ]*/
isArray
Array.isArray 用于确定传递的值是否是一个 Array
如果对象是 Array,则返回 true,否则为 false。
参数说明
isArray (obj: any) return boolean
| 参数名 | 是否必填 | 类型 | 说明 |
|---|---|---|---|
| obj | 是 | any | 需要检测的值 |
示例
// 下面的函数调用都返回 trueArray.isArray([]);Array.isArray([1]);Array.isArray(new Array());Array.isArray(new Array('a', 'b', 'c', 'd'))// 鲜为人知的事实:其实 Array.prototype 也是一个数组。Array.isArray(Array.prototype);// 下面的函数调用都返回 falseArray.isArray();Array.isArray({});Array.isArray(null);Array.isArray(undefined);Array.isArray(17);Array.isArray('Array');Array.isArray(true);Array.isArray(false);Array.isArray(new Uint8Array(32))Array.isArray({ __proto__: Array.prototype });
of
Array.of 方法创建一个具有可变数量参数的新数组实例,而不考虑参数的数量或类型。
Array.of 和 Array 构造函数之间的区别在于处理整数参数:Array.of(7) 创建一个具有单个元素 7 的数组,而 Array(7) 创建一个长度为 7 的空数组(注意:这是指一个有 7 个空位 empty 的数组,而不是由 7 个undefined组成的数组)。
参数说明
of (...args: any) return // 新的 Array 实例。
| 参数名 | 是否必填 | 类型 | 说明 |
|---|---|---|---|
| …args | 是 | any | 任意个参数,将按顺序成为返回数组中的元素 |
示例
Array.of(1); // [1]Array.of(1, 2, 3); // [1, 2, 3]Array.of(undefined); // [undefined]
