from()
方法的语法为:
Array.from(arraylike, mapFunc, thisArg)
from()
方法是静态方法,使用Array
类名称进行调用。
from()参数
from()
方法采用:
- arraylike-类似于数组或可迭代的对象,可转换为数组。
- mapFunc (可选)-在每个元素上调用的Map 函数 。
- thisArg (可选)-执行mapFunc时用作此值。
注意 : Array.from(obj, mapFunc, thisArg)
等效于Array.from(obj).map(mapFunc, thisArg)
。
从()返回值
- 返回一个新的
Array
实例。
注意 :此方法可以从以下位置创建数组 :
-
Array
对象-具有length属性并具有索引元素(如字符串。 - 可迭代的objets,例如Map或Set 。
示例1:使用from()方法
// Array from String
let arr1 = Array.from("abc");
console.log(arr1); // [ 'a', 'b', 'c' ]
// Array from Map
let mapper = new Map([
["1", "a"],
["2", "b"],
]);
let arr2 = Array.from(mapper);
console.log(arr2); // [ [ '1', 'a' ], [ '2', 'b' ] ]
let arr3 = Array.from(mapper.keys());
console.log(arr3); // [ '1', '2' ]
// Array from Set
let set = new Set(["JavaScript", "Python", "Go"]);
let arr4 = Array.from(set);
console.log(arr4); // [ 'JavaScript', 'Python', 'Go' ]
输出
[ 'a', 'b', 'c' ]
[ [ '1', 'a' ], [ '2', 'b' ] ]
[ '1', '2' ]
[ 'JavaScript', 'Python', 'Go' ]
这也适用于其他可迭代对象。
示例2:将from()方法与mapFunc一起使用
function createArr(arraylike, mapFunc) {
return Array.from(arraylike, mapFunc);
}
// using arrow function for mapFunc
let arr1 = createArr("123456", (x) => 2 * x);
console.log(arr1); // [ 2, 4, 6, 8, 10, 12 ]
输出
[ 2, 4, 6, 8, 10, 12 ]
推荐读物: JavaScript Array map()