Array.from

有一个全局方法 Array.from 可以接受一个可迭代或类数组的值,并从中获取一个“真正的”数组。然后我们就可以对其调用数组方法了。

        let ayyaylike = {
            0:"Hello",
            1:"world",
            2:"javascript",
            length:3
        }

        let arr =Array.from(ayyaylike);
        alert(arr)

有两个看起来很相似,但又有很大不同的正式术语。请你确保正确地掌握它们,以免造成混淆。

  • Iterable 如上所述,是实现了 Symbol.iterator 方法的对象。
  • Array-like 是有索引和 length 属性的对象,所以它们看起来很像数组。

可迭代对象和类数组对象通常都 不是数组,它们没有 push 和 pop 等方法。如果我们有一个这样的对象,并想像数组那样操作它

Array.from 的完整语法允许我们提供一个可选的“映射(mapping)”函数:

Array.from(obj[, mapFn, thisArg])

可选的第二个参数 mapFn 可以是一个函数,该函数会在对象中的元素被添加到数组前,被应用于每个元素,此外 thisArg 允许我们为该函数设置 this

let arr = Array.from(range, num => num * num); alert(arr); // 1,4,9,16,25

posted @ 2021-03-05 15:27  大叔学编程  阅读(24)  评论(0)    收藏  举报