JavaScript

Array.prototype.push()メソッド

 編集:2022.08.18 by T.A.

その Array の末尾に指定の要素を追加し、結果の配列の長さを返します。元配列は更新されます。

Array.push([element1[, ...[, elementN]]])
Array Arrayオブジェクト
elementn 配列の末尾に追加する要素。
戻り値

¶Number。

let sports = ['soccer', 'baseball'];
let total = sports.push('football', 'swimming'); //=4。sports=['soccer', 'baseball', 'football', 'swimming']
2つの配列をマージする

2 番目の配列(例では moreVegs)が非常に大きい場合はこのメソッドを使用しないでください。なぜなら、1 つの関数が取ることのできるパラメータの最大数は実際には制限されているからです。詳細は Function.apply() を参照してください。

// 1 つ目の配列に 2 つ目の配列をマージ(合併)させます
// vegetables.push('celery', 'beetroot'); と同じ結果になります
let vegetables = ['parsnip', 'potato'];
let moreVegs = ['celery', 'beetroot'];
D=Array.prototype.push.apply(vegetables, moreVegs); //=4。vegetables=['parsnip', 'potato', 'celery', 'beetroot']
オブジェクトを配列のように使用する

上述したように、push は内部的には汎用的なので、その利点を活かすことができます。この例が示しているように、オブジェクト上で Array.prototype.push は正しく動作します。

オブジェクトのコレクションを保存するために、配列を生成していないことに注意してください。代わりに、コレクションをオブジェクト自体に保存して、配列を扱っているかのように見せかけるために Array.prototype.push 上で call を使用しています。そして、JavaScript は実行コンテキストの確立を許可しているおかげで、これは動作します。

//コンソールにて
let obj = {
    length: 0,
    addElem: function addElem(elem) {
        // obj.length は、要素が追加されるたびに自動的に増分する。
        [].push.call(this, elem)
    }
}
// 例示のために空のオブジェクトを追加する。
obj.addElem({})
obj.addElem({})
console.log(obj.length)
// → 2

obj は配列ではありませんが、本当の配列を扱っているかのように push メソッドは obj の length プロパティを増加させできていることに注意してください。

A=["あ", "い"];
D=A.push("か", "き"); //=4。A=["あ", "い", "か", "き"]
関連

push()()

shift()unshift()


テスト