Array.prototype.concat()

concat() メソッドは、配列に他の配列や値をつないでできた新しい配列を返します。

構文

var new_array = old_array.concat(value1[, value2[, ...[, valueN]]])

引数

valueN
新しい配列に連結させる配列や値。詳細は以下を参照のこと。

戻り値

新しい Array インスタンス。

説明

concat は、メソッドを呼び出した this オブジェクトの要素に、与えられた引数の要素 (引数が配列である場合) または引数そのもの (引数が配列でない場合) が順に続く、新しい配列オブジェクトを生成します。

concatthis や引数として与えられた配列を変更しませんが、その代わりに元の配列から結合させた同じ要素のコピーを含むシャローコピー (1 次元の配列要素までの浅いコピー) を返します。元の配列の要素は以下のようにして新しい配列にコピーされます。

  • オブジェクトの参照 (実際のオブジェクトではなく): concat はオブジェクトの参照を新しい配列にコピーします。元の配列も新しい配列も同じオブジェクトを参照します。これはつまり、もし参照されているオブジェクトが修正されれば、その変更は元の配列と新しい配列の両方に現れるわけです。
  • 文字列や数値、真偽値 (String オブジェクトや Number オブジェクト、Boolean オブジェクトではなく): concat は文字列や数値の値を新しい配列にコピーします。

ノート: 連結した配列/値は元の配列には手を付けません。さらに、新しい配列へどんな操作をしても、元の配列には影響しません。逆もまた同様です(要素がオブジェクト参照ではない場合のみです)。

例: 2 つの配列を連結させる

以下のコードは 2 つの配列を連結させます。

var alpha = ['a', 'b', 'c'],
    numeric = [1, 2, 3];

var alphaNumeric = alpha.concat(numeric);

console.log(alphaNumeric); // Result: ['a', 'b', 'c', 1, 2, 3]

例: 3 つの配列を連結させる

以下のコードは 3 つの配列を連結させます。

var num1 = [1, 2, 3],
    num2 = [4, 5, 6],
    num3 = [7, 8, 9];

var nums = num1.concat(num2, num3);

console.log(nums);
// results in [1, 2, 3, 4, 5, 6, 7, 8, 9]

例: 配列に値を連結させる

以下のコードは配列に値を連結させます。

var alpha = ['a', 'b', 'c'];

var alphaNumeric = alpha.concat(1, [2, 3]);

console.log(alphaNumeric); 
// Result: ['a', 'b', 'c', 1, 2, 3]

仕様

仕様 ステータス コメント
ECMAScript 3rd Edition (ECMA-262) 標準 初期定義。JavaScript 1.2 で実装。
ECMAScript 5.1 (ECMA-262)
Array.prototype.concat の定義
標準  
ECMAScript 2015 (6th Edition, ECMA-262)
Array.prototype.concat の定義
標準  
ECMAScript 2017 Draft (ECMA-262)
Array.prototype.concat の定義
ドラフト  

ブラウザ実装状況

機能 Chrome Firefox (Gecko) Internet Explorer Opera Safari
基本サポート 1.0 1.0 (1.7 or earlier) 5.5 (有) (有)
機能 Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
基本サポート (有) (有) (有) (有) (有) (有)

関連情報

ドキュメントのタグと貢献者

タグ: 
 このページの貢献者: shootaroo, YuichiNukiyama, teoli, ethertank, Yuichirou, Mgjbot
 最終更新者: shootaroo,