JS.next

JavaScriptの最新実装情報を追うブログ

Array.{of, from}が実装された

概要

配列を作る2つのArrayのスタティックメソッドが実装された。


Array.from(arrayLike, mapfn?, thisArg?)

配列のようなものから配列を作る便利なメソッド

DOMに配列のメソッドを適応したい時、
今までは

[].slice.call(document.getElementsByTagNames('p')).map(mapfn, thisArg)

これがこう書ける

Array.from(document.getElementsByTagNames('p'), mapfn, thisArg)


外部参考リンク

Firefox 32 で Array.from が実装された - hogehoge @teramako


Array.of(...items)

引数から配列を作るメソッド

Array.of(1)        // [1]
Array.of(1, 2, 3)  // [1, 2, 3]


Arrayのサブクラスで使う

これらのスタティックメソッドはきちんと継承先のコンストラクタを呼んで、それを拡張する動作をしてくれる。

class Stack extends Array {
  constructor(...args) {
    console.log('Stack was invoked')
    super(...args)
  }
  clear() { this.length = 0 }
}

var stack = Stack.of(1, 2, 3)

//log// 'Stack was invoked'


実装されるバージョン

V8 3.29.10(Array.of) 3.31.54(Array.from) 4.5.73(デフォルト有効)