Array.from()
是 JavaScript 中的一个方法,用于将两类对象转换为真正的数组:
-
类似数组的对象(array-like object):这些对象拥有一个 length 属性和若干索引属性,但并不是真正的数组实例,例如 HTMLCollection、NodeList 等。
-
可遍历(iterable)的对象:包括 ES6 新增的数据结构如 Set、Map,以及任何实现了迭代器接口的对象。
Array.from()
的基本用法如下:
Array.from(arrayLike[, mapFunction[, thisArg]])
-
arrayLike
: 必需参数,是要转换为数组的类数组对象或可迭代对象。 -
mapFunction
: 可选参数,是一个函数,会在每个元素上被调用,其返回值会被插入到新数组中。该函数接受两个参数:-
item
: 当前元素的值。 -
index
: 当前元素的索引。
-
-
thisArg
: 可选参数,是执行回调函数mapFunction
时的this
值。这个参数很少使用。
以下是一些使用示例:
- 将类数组对象转换为数组:
let divs = document.querySelectorAll('div');
let divsArray = Array.from(divs);
- 将字符串转换为字符数组:
let str = 'hello';
let charArray = Array.from(str); // ['h', 'e', 'l', 'l', 'o']
- 使用映射函数转换:
let array = Array.from({ length: 5 }, (v, i) => i * 2); // [0, 2, 4, 6, 8]
- 将 Set 转换为数组:
let set = new Set([1, 2, 3, 4, 4, 5]);
let arrayFromSet = Array.from(set); // [1, 2, 3, 4, 5]
- 将 Map 转换为数组(键值对数组):
let map = new Map().set(1, 'one').set(2, 'two');
let arrayFromMap = Array.from(map, ([key, value]) => ({ key, value }));
// [{ key: 1, value: 'one' }, { key: 2, value: 'two' }]
以上就是Array.from()
的一些基本用法和示例。
网友评论