📌  相关文章
📜  Array.from (1)

📅  最后修改于: 2023-12-03 14:39:21.019000             🧑  作者: Mango

Array.from 应用介绍

在 JavaScript 中,Array.from() 是一个常用的方法,用于将类数组对象或可迭代对象转换为数组。本文将介绍这个方法的具体用法和注意事项。

基本用法
Array.from(arrayLike [, mapFunc [, thisArg]]);

可以看到,Array.from() 接收一个必选参数 arrayLike,它可以是类数组对象或可迭代对象,并将其转换成一个新的数组返回。如果需要对每个元素进行特定的操作,则可以传递第二个可选参数 mapFunc 指定一个映射函数,它类似于数组的 map() 方法,并且第三个可选参数 thisArg 可以用作映射函数执行时 this 的值。

以下是一个示例,将一个类数组对象转换成一个新数组:

const arrayLike = {
  0: 'foo',
  1: 'bar',
  2: 'baz',
  length: 3
};

const arr = Array.from(arrayLike);
console.log(arr); // ['foo', 'bar', 'baz']
映射函数

想要在转换过程中对每个元素执行某个操作,可以传递第二个参数 mapFunc。这个映射函数类似于数组的 map() 方法,接收以下三个参数:

  • currentValue:当前元素的值。
  • index:当前元素的索引。
  • array:原始类数组对象或可迭代对象。

以下是一个示例,将一个类数组对象中的元素转换成大写:

const arrayLike = {
  0: 'foo',
  1: 'bar',
  2: 'baz',
  length: 3
};

const arr = Array.from(arrayLike, x => x.toUpperCase());
console.log(arr); // ['FOO', 'BAR', 'BAZ']
可迭代对象

除了类数组对象,还可以将可迭代对象转换成数组。可迭代对象可以是任何具有迭代器(Symbol.iterator)接口的对象,例如字符串、Map、Set 和 arguments 对象等。

以下是一个示例,将一个字符串转换成一个新的数组:

const str = 'hello';
const arr = Array.from(str);
console.log(arr); // ['h', 'e', 'l', 'l', 'o']

结语

Array.from() 是一个非常实用的方法,它可以将类数组对象或可迭代对象转换成一个新的数组。在需要对每个元素进行特定操作时,可以使用映射函数来进行转换。