Array.from() の説明として、最も適切なものはどれですか?
解説
Array.from() はES2015で導入された Array の静的メソッドで、反復可能オブジェクト(Set、Map、String、NodeList など)や配列風オブジェクト(length プロパティを持ち、インデックスでアクセスできるもの)を引数に取り、新しい Array インスタンスを返します。第2引数にマッピング関数を渡せるため、変換と同時に各要素を加工できるのも大きな特徴です。たとえば Array.from({ length: 5 }, (_, i) => i) で [0, 1, 2, 3, 4] を簡潔に生成できます。実務では、document.querySelectorAll() が返す NodeList を配列に変換して filter や map を使いたい場面や、Set から重複を除去した配列を作る場面で頻繁に使われます。スプレッド構文 [...iterable] でも同様のことができますが、Array.from は配列風オブジェクト(iterableプロトコルを実装していないが length を持つもの)にも対応している点が異なります。Array.of() は渡した引数をそのまま要素にするメソッド(Array.of(3) は [3])であり、Array.from() とは目的が異なります。ディープコピーの機能はなく、あくまでシャローコピーです。TypedArray専用でもなく、通常のあらゆるiterableや配列風オブジェクトに使用できます。