[javascript] 配列に何かを追加するには?


11 Answers

単一の変数だけを追加している場合、 push()うまく動作します。 別の配列を追加する必要がある場合は、 concat()使用します。

var ar1 = [1, 2, 3];
var ar2 = [4, 5, 6];

var ar3 = ar1.concat(ar2);

alert(ar1);
alert(ar2);
alert(ar3);

吐き出すだろう:

"1,2,3"
"4,5,6"
"1,2,3,4,5,6"

再割り当てされない限り、concatはar1およびar2は影響しませんar1たとえば、 ar1なります。

ar1 = ar1.concat(ar2);
alert(ar1);

表示されます:

"1,2,3,4,5,6"

たくさんの素晴らしい情報がhere

Question

JavaScriptの配列にオブジェクト(文字列や数値など)を追加するにはどうすればよいですか?




JavaScriptで配列を追加するには、いくつかの方法があります。

1) push()メソッドは、配列の最後に1つ以上の要素を追加し、配列の新しい長さを返します。

var a = [1, 2, 3];
a.push(4, 5);
console.log(a);

出力:

[1, 2, 3, 4, 5]

2) unshift()メソッドは、配列の先頭に1つ以上の要素を追加し、配列の新しい長さを返します。

var a = [1, 2, 3];
a.unshift(4, 5);
console.log(a); 

出力:

[4, 5, 1, 2, 3]

3) concat()メソッドは、2つ以上の配列をマージするために使用されます。 このメソッド既存の配列を変更するのではなく 、代わりに新しい配列を返します。

var arr1 = ["a", "b", "c"];
var arr2 = ["d", "e", "f"];
var arr3 = arr1.concat(arr2);
console.log(arr3);

出力:

[ "a", "b", "c", "d", "e", "f" ]

4)配列の.lengthプロパティを使用すると、配列の最後に要素を追加できます。

var ar = ['one', 'two', 'three'];
ar[ar.length] = 'four';
console.log( ar ); 

出力:

 ["one", "two", "three", "four"]

5) splice()メソッドは、既存の要素を削除したり、新しい要素を追加したりして、配列の内容を変更します。

var myFish = ["angel", "clown", "mandarin", "surgeon"];
myFish.splice(4, 0, "nemo");
//array.splice(start, deleteCount, item1, item2, ...)
console.log(myFish);

出力:

["angel", "clown", "mandarin", "surgeon","nemo"]

6)新しいインデックスを指定して値を割り当てるだけで、配列に新しい要素を追加することもできます:

var ar = ['one', 'two', 'three'];
ar[3] = 'four'; // add new element to ar
console.log(ar);

出力:

["one", "two","three","four"]



重複なしで2つの配列を結合したい場合は、以下のコードを試してみてください

array_merge = function (arr1, arr2) {
  return arr1.concat(arr2.filter(function(item){
    return arr1.indexOf(item) < 0;
  }))
}

使用法:

array1 = ['1', '2', '3']
array2 = ['2', '3', '4', '5']
combined_array = array_merge(array1, array2)

出力: [1,2,3,4,5]




新しいES6 スプレッド演算子を使用pushと、 pushを使用して2つの配列を結合する方がさらに簡単になります。

var arr = [1, 2, 3, 4, 5];
var arr2 = [6, 7, 8, 9, 10];
arr.push(...arr2);
console.log(arr); // [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];

arr2の内容がarrの最後に追加されます。

バベルREPLの例




配列の長さのプロパティを作業させます:

myarray[myarray.length] = 'new element value added to the end of the array';

myarray.lengthは、配列内の文字列の数を返します。 JSはゼロベースなので、配列の次の要素キーは配列の現在の長さになります。 EX:

var myarray = [0, 1, 2, 3],
    myarrayLength = myarray.length; //myarrayLength is set to 4



あなたは新しいjavascript Es 6の機能を使用してそれを行うことができます:

// initialize array

var arr = [
    "Hi",
    "Hello",
    "Bangladesh"
];

// append new value to the array

arr= [...arr , "Feni"];

// or you can put a variable value

var testValue = "Cool";

arr = [...arr , testValue ];

console.log(arr); 

// final output  [ 'Hi', 'Hello', 'Bangladesh', 'Feni', 'Cool' ]



push()メソッドを使用すると、配列に項目が追加されます。 以下の例を参照してください。

 array=['a','b','c'];
 array.push('d')
 console.log(array);  




ほとんどのブラウザで現在サポートされているECMAScript 5標準のJavascriptでは、 apply()を使用してarray1array2に追加できます。

var array1 = [3, 4, 5];
var array2 = [1, 2];

Array.prototype.push.apply(array2, array1);

console.log(array2); // [1, 2, 3, 4, 5]

ChromeとFFとIE EdgeでサポートされているECMAScript 6標準のJavascriptでは、 spread演算子を使用できます。

"use strict";
let array1 = [3, 4, 5];
let array2 = [1, 2];

array2.push(...array1);

console.log(array2); // [1, 2, 3, 4, 5]

spread演算子はarray2.push(...array1);を置き換えarray2.push(...array1); array2.push(3, 4, 5); ブラウザがロジックを考えているとき。

ボーナスポイント

両方の配列のすべての項目を格納する別の変数を作成する場合は、次のようにします。

ES5 var combinedArray = array1.concat(array2);

ES6 const combinedArray = [...array1, ...array2]

スプレッド演算子( ... )は、コレクションからすべてのアイテムを展開することです。




あなたは.push()で値を設定します。 例: array.push(value);







プッシュは複数の引数で呼び出すことができると言及する価値があると思います。複数の引数は配列に順番に追加されます。 例えば:

var arr = ['first'];
arr.push('second', 'third');
console.log(arr); // ['first', 'second', 'third']

その結果、push.applyを使って別の配列に配列を追加することができます:

arr.push.apply(arr, ['forth', 'fifth']);
console.log(arr); // ['first', 'second', 'third', 'forth', 'fifth']

注釈付きES5には、 pushapplyが正確に何かに関する情報がありapply

2016年の更新: spreadによって、あなたはそれ以上apply必要はありません。

arr.push(...['fourth', 'fifth']);
console.log(arr) // ['first', 'second', 'third', 'fourth', 'fifth']



もちろん、 concat()は2次元配列でも使用できます。 ループは必要ありません。

var a = [[1,2]、[3、4]];

var b = [["a"、 "b"]、["c"、 "d"]];

b = b.concat(a);

アラート(b [2] [1]); //結果2




Related