📅  最后修改于: 2023-12-03 15:01:39.784000             🧑  作者: Mango
在 JavaScript 中,我们可以使用 from()
方法来将一个类似数组或可迭代对象转换为一个真正的数组。
Array.from(obj[, mapFn[, thisArg]])
from()
方法接收三个参数:
obj
:要转换成数组的类数组或可迭代对象。
mapFn
(可选):对每个元素进行转换的函数。它接收以下三个参数:
currentValue
:当前元素的值。index
(可选):当前元素的索引。array
(可选):正在被转换的数组。thisArg
(可选):可选。执行 mapFn
时使用的 this
值。
const str = 'hello';
const arr = Array.from(str);
console.log(arr); // ["h", "e", "l", "l", "o"]
以上代码将字符串 "hello"
转换为数组 ["h", "e", "l", "l", "o"]
。
const set = new Set(['foo', 'bar']);
const arr = Array.from(set, x => x.toUpperCase());
console.log(arr); // ["FOO", "BAR"]
以上代码将 Set
类型的 set
对象转换为大写字母的数组 ["FOO", "BAR"]
。
const obj = { a: 1, b: 2, c: 3 };
const arr = Array.from(Object.keys(obj), x => obj[x] * 2);
console.log(arr); // [2, 4, 6]
以上代码将对象 { a: 1, b: 2, c: 3 }
的键名转换成数组,并把对应的键值乘以二,返回 [2, 4, 6]
。
from()
方法使得我们可以方便地将类数组或可迭代对象转换为真正的数组,并且可以同时进行转换操作。这是一个非常实用的方法,它能大大减少我们代码的复杂度,提高我们的开发效率。