Fügen Sie zwei arrays, ohne mit der concat-Methode
Hier ist ein Beispiel, was ich gerne tun würde
function test(r){
var arr = ['d','e','f'];
r.push(arr);
/*
More Code
*/
return r;
}
var result = test(['a','b','c']);
alert(result.length);//I want this to alert 6
Was ich tun müssen, ist, übergeben Sie ein array, und legen Sie die andere arrays an das Ende und dann wieder das array. Wegen der übergabe von Referenz, die ich nicht verwenden array.concat(array2);
. Gibt es eine Möglichkeit, dies zu tun, ohne etwas wie eine for-Schleife hinzufügen, um die Elemente eins nach dem anderen. Ich habe versucht, so etwas wie r.push(arr.join());
aber das hat nicht funktioniert entweder. Ich möchte auch die option, Objekte in den arrays also wirklich r.push(arr.join());
funktioniert nicht sehr gut.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Alternativ mit destructuring jetzt können Sie dies tun
apply
zu schieben alle Mitglieder von einem array auf ein anderes array +1x.push(y)
bedeutet "rufen Sie die Funktionx.push
mit Rahmenx
und die Argumente[y]
. In diesem Fallx.push
löstArray.prototype.push
so:Array.prototype.push.apply(x, [y])
. Ich erwähnte nur die zweite form, wie es manchmal vorzuziehen, nur den Verweisx
einmal.x.push.apply(x, y)
gelöst es für mich, vor allem in der zweitenx
auch wenn ich nicht verstehe, warum es ist wie es istDies ist emulbreh Antwort, ich bin nur die Entsendung der test habe ich, um es zu überprüfen.
Alle Kredit gehen sollten, um emulbreh