→
その Array の末尾に指定の要素を追加し、結果の配列の長さを返します。元配列は更新されます。
Array | Arrayオブジェクト |
---|---|
elementn | 配列の末尾に追加する要素。 |
¶Number。
let sports = ['soccer', 'baseball']; let total = sports.push('football', 'swimming'); //=4。sports=['soccer', 'baseball', 'football', 'swimming']
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=["あ", "い", "か", "き"]