JavaScript 配列 push

概要: このチュートリアルでは、JavaScript 配列の push() メソッドを使用して、配列の末尾に1つ以上の要素を追加する方法を学びます。

JavaScript 配列 push() メソッドの紹介

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

以下に、push() メソッドの構文を示します。

push(newElement);
push(newElement1,newElement2);
push(newElement1,newElement2,...,newElementN);

push() メソッドは、メソッドを呼び出した配列オブジェクトの length プロパティの新しい値を返します。

JavaScript 配列 push() メソッドの例

push() メソッドの使用例をいくつか見てみましょう。

1) 配列 push() を使用して1つの要素を配列に追加する

次の例では、数値 40numbers 配列の末尾に追加します。

let numbers = [10, 20, 30];

const length = numbers.push(40);

console.log(length);
console.log(numbers);
Code language: JavaScript (javascript)

出力

4
[ 10, 20, 30, 40 ]Code language: JSON / JSON with Comments (json)

動作の仕組み

まず、3つの数値を持つ numbers 配列を定義します。

let numbers = [10, 20, 30];Code language: JavaScript (javascript)

次に、push() メソッドを使用して数値 40numbers 配列の末尾に追加し、戻り値を length 変数に代入します。

const length = numbers.push(40);Code language: JavaScript (javascript)

3番目に、length 変数と numbers 配列を出力します。

console.log(length);
console.log(numbers);Code language: JavaScript (javascript)

次の図は、この例がどのように機能するかを示しています。

2) 配列 push() を使用して複数の要素を配列の末尾に追加する

次の例は、push() メソッドを使用して複数の要素を配列の末尾に追加する方法を示しています。

let numbers = [10, 20, 30];

const length = numbers.push(40, 50);

console.log(length);
console.log(numbers);Code language: JavaScript (javascript)

出力

5
[ 10, 20, 30, 40, 50 ]Code language: JSON / JSON with Comments (json)

次の図は、これがどのように機能するかを示しています。

3) push() を使用して、ある配列の要素を別の配列に追加する

colorscmyk の2つの配列があるとします。

let colors = ['red', 'green', 'blue'];
let cmyk = ['cyan', 'magenta', 'yellow', 'back'];Code language: JavaScript (javascript)

cmyk の要素を colors 配列に追加したいとします。

それを行うには、cmyk 配列の要素を反復処理する for...of ループを使用し、push() メソッドを使用して各要素を colors 配列に追加できます。このようになります。

let colors = ['red', 'green', 'blue'];
let cmyk = ['cyan', 'magenta', 'yellow', 'back'];

for (const color of cmyk) {
  colors.push(color);
}

console.log(colors);Code language: JavaScript (javascript)

出力

['red', 'green', 'blue', 'cyan', 'magenta', 'yellow', 'back']Code language: JSON / JSON with Comments (json)

ES6 以降では、スプレッド演算子 (...) を使用して、cmyk 配列の要素を展開し、同時に colors 配列にプッシュできます。このようになります。

let colors = ['red', 'green', 'blue'];
let cmyk = ['cyan', 'magenta', 'yellow', 'back'];

colors.push(...cmyk);

console.log(colors);
Code language: JavaScript (javascript)

配列のようなオブジェクトで JavaScript 配列 push() メソッドを使用する

Array.prototype.push() メソッドは、意図的にジェネリックになるように設計されています。したがって、配列のようなオブジェクトで call() または apply() を使用して push() メソッドを呼び出すことができます。

内部では、push() メソッドは、要素を挿入する位置を決定するために length プロパティを使用します。push() メソッドが length プロパティを数値に変換できない場合は、インデックスの値として 0 を使用します。

次の例を参照してください。

let greetings = {
  0: 'Hi',
  1: 'Hello',
  length: 2,
  append(message) {
    [].push.call(this, message);
  },
};
greetings.append('Howdy');
greetings.append('Bonjour');

console.log(greetings);
Code language: JavaScript (javascript)

出力

{
  '0': 'Hi',
  '1': 'Hello',
  '2': 'Howdy',
  '3': 'Bonjour',
  length: 4,
  add: [Function: add]
}Code language: JavaScript (javascript)

動作の仕組み

まず、3つのプロパティ 12length と 1つのメソッド append() を持つ greetings オブジェクトを定義します。

let greetings = {
  0: 'Hi',
  1: 'Hello',
  length: 2,
  append(message) {
    [].push.call(this, message);
  },
};Code language: JavaScript (javascript)

append() メソッドは、配列オブジェクトの push() メソッドを呼び出して、messagegreetings オブジェクトに追加します。

次に、greetings オブジェクトの append() メソッドを呼び出します。

greetings.append('Howdy');
greetings.append('Bonjour');Code language: JavaScript (javascript)

各呼び出しで、push()greetings オブジェクトの length プロパティを使用して、新しい要素を追加する位置を決定し、length プロパティを 1 つ増やします。

その結果、greetings オブジェクトにはインデックス 23 にさらに2つの要素が追加されます。また、length プロパティは呼び出し後 4 になります。

3番目に、greetings オブジェクトをコンソールに出力します。

console.log(greetings);Code language: JavaScript (javascript)

append() メソッドで複数のメッセージを受け入れられるようにするには、メソッドを次のように変更できます。

let greetings = {
  0: 'Hi',
  1: 'Hello',
  length: 2,
  append() {
    [].push.call(this, ...arguments);
  },
};
greetings.append('Howdy', 'Bonjour');

console.log(greetings);
Code language: JavaScript (javascript)

動作の仕組み

まず、append メソッドから message パラメータを削除します。

次に、arguments オブジェクトの要素を展開し、greetings オブジェクトにプッシュします。

まとめ

  • JavaScript 配列の push() メソッドを使用して、1つ以上の要素を配列に追加します。
  • push() メソッドは、配列のようなオブジェクトでも機能します。
このチュートリアルは役に立ちましたか?