Get to know MDN better
このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。
この機能は広く実装されており、多くのバージョンの端末やブラウザーで動作します。2015年9月以降、すべてのブラウザーで利用可能です。
Array.from() 静的メソッドは、反復可能オブジェクトや配列風オブジェクトからシャローコピーされた、新しい Array インスタンスを生成します。
配列に変換する反復可能オブジェクトまたは配列風オブジェクト。
mapFn 省略可配列の各要素に対して呼び出す関数です。指定された場合、配列に追加されるすべての値は最初にこの関数に渡され、代わりに mapFn の返値が配列に追加されます。この関数は以下の引数で呼び出されます。
element配列内で現在処理中の要素です。
index配列内で現在処理中の要素のインデックスです。
thisArg 省略可mapFn を実行する時に this として使用する値です。
新しい Array インスタンス。
Array.from() は、以下のものから Array を生成します。
反復可能オブジェクトでも配列風でもない普通のオブジェクトを配列に変換するには(プロパティのキー、値、またはその両方を列挙して) Object.keys()、Object.values()、Object.entries() のいずれかを使用してください。非同期反復可能オブジェクトを配列に変換するには、Array.fromAsync()を使用します。
Array.from() は疎配列を作成しません。 items オブジェクトのインデックスプロパティが欠けている場合、新しい配列では undefined になります。
Array.from() にはオプションで mapFn という引数があり、 map() と同様に、作成する配列のそれぞれの要素に対して関数を実行することができます。より明確には、Array.from(obj, mapFn, thisArg) は Array.from(obj).map(mapFn, thisArg) と同じ結果を保有します。ただし、Array.from(obj).map(mapFn, thisArg) は中間配列を作成せず、mapFn は配列全体を持たずに 2 つの引数 (element, index) を受け取るだけです。
メモ: この動作は型付き配列にとってより重要です。なぜなら、中間の配列は適切な型を入力するために必然的に値が切り捨てられるからです。 Array.from() は TypedArray.from() と同じシグネチャを持つために実装します。
Array.from() メソッドは汎用ファクトリーメソッドです。例えば、 Array のサブクラスが from() メソッドを継承した場合、継承した from() メソッドは Array インスタンスではなく、サブクラスの新しいインスタンスを返します。実際には、新しい配列の長さを表す単一の引数を受け入れるコンストラクター関数を this 値として指定することができます。反復可能オブジェクトが items として渡された場合、コンストラクターは引数なしで呼び出されます。配列風のオブジェクトが渡された場合、コンストラクターは配列風オブジェクトの正規化された長さで呼び出されます。最終的な length は反復処理が完了したときに再び設定されます。もし this の値がコンストラクター関数でない場合、代わりにプレーンな Array コンストラクターが使用されます。
from() メソッドは、新しい配列の長さを表す単一の引数を受け入れるコンストラクター関数で呼び出すことができます。
this の値がコンストラクターでない場合は、プレーンな Array オブジェクトを返します。
| ECMAScript® 2027 Language Specification # sec-array.from |
ブラウザー互換性一覧表を表示するには、JavaScript を有効にしてください。
より良いインターネットのための青写真。
このコンテンツの一部は、©1998–2026 個人の mozilla.org 協力者です。コンテンツはクリエイティブ・コモンズ・ライセンスのもとで利用できます。