Array.of()

Array.of() メソッドは、引数の数や型にかかわらず、可変長引数から、新しい Array インスタンスを生成します。

Array.of()Array コンストラクタの違いは整数引数の扱いにあります。Array.of(7) は単一の要素、7を持つ配列を作成しますが、 Array(7)length プロパティが7の空の配列を作成します(注: これは実際の undefined の値を持つスロットではなく、7つの空のスロットの配列を意味します)。

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

Array(7);          // array of 7 empty slots
Array(1, 2, 3);    // [1, 2, 3]

構文

Array.of(element0[, element1[, ...[, elementN]]])

引数

elementN
生成する配列の要素。

返値

新しい Array インスタンス。

解説

この関数は、ECMAScript 標準の第 6 版の一部です。 詳しい情報は、Array.ofArray.from 提案Array.of 互換コード をご覧ください。

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

ポリフィル

Array.of() がネイティブ実装されていない環境では、他のコードが Array.of() を生成する前に、次のコードを実行してください。

if (!Array.of) {
  Array.of = function() {
    return Array.prototype.slice.call(arguments);
    // Or 
    let vals = [];
    for(let prop in arguments){
        vals.push(arguments[prop]);
    }
    return vals;
  }
}

仕様書

仕様書 状態 備考
ECMAScript Latest Draft (ECMA-262)
Array.of の定義
ドラフト
ECMAScript 2015 (6th Edition, ECMA-262)
Array.of の定義
標準 初回定義

ブラウザーの互換性

Update compatibility data on GitHub
デスクトップモバイルサーバー
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewAndroid 版 ChromeAndroid 版 FirefoxAndroid 版 OperaiOSのSafariSamsung InternetNode.js
ofChrome 完全対応 45Edge 完全対応 12Firefox 完全対応 25IE 未対応 なしOpera 完全対応 ありSafari 完全対応 9WebView Android 完全対応 ありChrome Android 完全対応 39Firefox Android 完全対応 25Opera Android 完全対応 ありSafari iOS 完全対応 ありSamsung Internet Android 完全対応 4.0nodejs 完全対応 4.0.0

凡例

完全対応  
完全対応
未対応  
未対応

関連情報