Dołączanie tablicy do innej tablicy w JavaScript [duplikat]
To pytanie jest dokładnym duplikatem:
Jak dodać tablicę do istniejącej tablicy JavaScript?
Jak dodać tablicę do innej tablicy w JavaScript?
Inne sposoby na to pytanie:
- Dodaj tablicę do innej
- Tablice Concat / Concatenate
- Rozszerz tablicę o inną tablicę
- umieść zawartość jednej tablicy w innej tablicy
Spędziłem jakiś czas szukam odpowiedzi na to pytanie. Czasami najprostsze takie jak te są najtrudniejsze do znalezienia odpowiedzi, więc dodaję pytanie tutaj, mam nadzieję, z dużą ilością słów kluczowych i zwrotów, jak na ten blog post . Proszę odpowiedzieć na to pytanie z innymi pomocnymi informacjami lub edytować słowa kluczowe i frazy poniżej.
1 answers
Jeśli chcesz zmodyfikować oryginalną tablicę zamiast zwracać nową, użyj .push()
...
array1.push.apply(array1, array2);
array1.push.apply(array1, array3);
Użyłem .apply
do wypychania poszczególnych członów tablic 2
i 3
naraz.
Lub...
array1.push.apply(array1, array2.concat(array3));
Aby poradzić sobie z dużymi tablicami, możesz to zrobić partiami.
for (var n = 0, to_add = array2.concat(array3); n < to_add.length; n+=300) {
array1.push.apply(array1, to_add.slice(n, n+300));
}
Jeśli robisz to często, Utwórz metodę lub funkcję do obsługi tego.
var push_apply = Function.apply.bind([].push);
var slice_call = Function.call.bind([].slice);
Object.defineProperty(Array.prototype, "pushArrayMembers", {
value: function() {
for (var i = 0; i < arguments.length; i++) {
var to_add = arguments[i];
for (var n = 0; n < to_add.length; n+=300) {
push_apply(this, slice_call(to_add, n, n+300));
}
}
}
});
I używaj go tak:
array1.pushArrayMembers(array2, array3);
var push_apply = Function.apply.bind([].push);
var slice_call = Function.call.bind([].slice);
Object.defineProperty(Array.prototype, "pushArrayMembers", {
value: function() {
for (var i = 0; i < arguments.length; i++) {
var to_add = arguments[i];
for (var n = 0; n < to_add.length; n+=300) {
push_apply(this, slice_call(to_add, n, n+300));
}
}
}
});
var array1 = ['a','b','c'];
var array2 = ['d','e','f'];
var array3 = ['g','h','i'];
array1.pushArrayMembers(array2, array3);
document.body.textContent = JSON.stringify(array1, null, 4);
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-12-04 18:45:19