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

📅  最后修改于: 2020-09-27 05:45:08             🧑  作者: Mango

JavaScript Array.from()静态方法从类似数组的对象或可迭代的对象创建浅表复制的Array实例。

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,例如MapSet

示例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()