51

ここで説明するように、JavaScriptで配列bを配列aに追加する簡単な方法はa.push.apply(a, b)です。

オブジェクトaが2回使用されていることに注意してください。本当に必要なのはpush関数だけで、b.push.apply(a, b)まったく同じことを実行します。applyの最初の引数はthis、適用された関数にを提供します。

Arrayオブジェクトのメソッドを直接使用する方が理にかなっていると思いましたArray.push.apply(a, b)。しかし、これは機能しません!

私はなぜそうしないのか、そして私の目標を達成するためのより良い方法があるかどうかに興味があります。push(特定の配列を2回呼び出す必要なしに関数を適用します。)

4

4 に答える 4

72

それArray.prototype.pushは、ではありませんArray.push

于 2013-03-16T00:41:04.383 に答える
4

何が問題になっていArray.prototype.concatますか?

var a = [1, 2, 3, 4, 5];
var b = [6, 7, 8, 9];

a = a.concat(b); // [1, 2, 3, 4, 5, 6, 7, 8, 9];
于 2013-03-16T00:41:54.057 に答える