Użyj Array.prototype.push
metody, aby dołączyć wartości do tablicy:
// initialize array
var arr = [
"Hi",
"Hello",
"Bonjour"
];
// append new value to the array
arr.push("Hola");
console.log(arr);
Możesz użyć tej push()
funkcji, aby dodać więcej niż jedną wartość do tablicy w jednym wywołaniu:
// initialize array
var arr = ["Hi", "Hello", "Bonjour", "Hola"];
// append multiple values to the array
arr.push("Salut", "Hey");
// display all values
for (var i = 0; i < arr.length; i++) {
console.log(arr[i]);
}
Aktualizacja
Jeśli chcesz dodać elementy jednej tablicy do drugiej, możesz użyć firstArray.concat(secondArray)
:
var arr = [
"apple",
"banana",
"cherry"
];
arr = arr.concat([
"dragonfruit",
"elderberry",
"fig"
]);
console.log(arr);
Aktualizacja
Tylko dodatek do tej odpowiedzi, jeśli chcesz dołączyć dowolną wartość na początku tablicy, która oznacza pierwszy indeks, możesz użyć Array.prototype.unshift
do tego celu.
var arr = [1, 2, 3];
arr.unshift(0);
console.log(arr);
Obsługuje także dodawanie wielu wartości jednocześnie push
.
for
w ogóle (użyj.forEach
).length
nieruchomości. Tłumacz sam w sobie wykonuje niesamowitą pracę i nie zrobi żadnej różnicy w realnym świecie, czy go zoptymalizujesz, czy nie. Jeśli tablica staje się tak ogromna, że optymalizacja.length
naprawdę by pomogła, najprawdopodobniej tablica nie jest już odpowiednią strukturą danych. UżywanieforEach
ma swoje zalety, ale bardzo wątpliwe jest, aby jednym z nich była zwiększona wydajność, ponieważ wywołanie funkcji dla każdej iteracji pociąga za sobą koszty i niczego nie oszczędza.length
Właściwość tablicy nie jest obliczana za każdym razem, gdy ją wywołujesz, jest to zmienna przechowywana warray
obiekcie, która jest aktualizowana tylko po zmianie tablicy. Więc nie ma w rzeczywistości żadnych kosztów wydajność w tymarr.length
wfor
stanie.forEach
funkcje zwrotne (niektóre z nich prawdopodobnie już to robią) i nie będzie różnicy w generowanym kodzie maszynowym, jeśli funkcja jest wywoływana wystarczająco często, aby ją skompilować zamiast interpretować przez środowisko uruchomieniowe. Tak samo jak w przypadku każdego języka, który nie jest asemblerem.Jeśli dodajesz tylko jedną zmienną, to
push()
działa dobrze. Jeśli chcesz dołączyć inną tablicę, użyjconcat()
:Concat nie wpływa
ar1
i, oar2
ile nie zostanie ponownie przypisany, na przykład:Wiele świetnych informacji tutaj .
źródło
How do I append to an array in JavaScript?
, aleconcat
faktycznie tworzy się nową tablicę. To ważna różnica! Zamiast tego powiedziałbym, że odpowiedź Omnimike jest najlepsza: Użyj Push.apply, aby wypchnąć całą tablicę do istniejącej tablicy bez tworzenia nowej.ar1 = ar1.concat(ar2);
, dołącza się doar1
ar1
, dołącz,ar2
a następnie zwróć nową tablicę. Wystarczy pominąć część przypisania (ar1 = ...
) z tego wiersza kodu, a zobaczysz, że oryginałar1
w rzeczywistości się nie zmienił. Jeśli chcesz uniknąć tworzenia kopii, będziesz potrzebowaćpush
. Nie wierz mi, uwierz w dokumenty : „Metoda concat () zwraca nową tablicę” Pierwsze zdanie w dokumentacji dlaconcat
.ar2
powyżej jest i tak. Wynik.push
w scenariuszu będzie= [ar1, [ar2]]
. .concat rozwiązuje ten problem, ale z poświęceniem szybkości i utworzeniem nowej tablicy. Aby używać.push
poprawnie w dodatkach tablicowych, najpierw wypuść zawarty element i wciśnij każdy z nich.ar2.forEach(each => { ar1.push(each); });
Niektóre szybkie testy porównawcze (każdy test = 500 tys. Dołączonych elementów, a wyniki są średnimi z wielu przebiegów) wykazały:
Firefox 3.6 (Mac):
arr[arr.length] = b
jest szybszy (300 ms vs. 800 ms)arr.push(b)
jest szybszy (500 ms vs. 900 ms)Safari 5.0 (Mac):
arr[arr.length] = b
jest szybszy (90ms vs. 115ms)arr[arr.length] = b
jest szybszy (160ms vs. 185ms)Google Chrome 6.0 (Mac):
Bardziej podoba mi się
arr.push()
składnia, ale myślę, że lepiej mi będzie zarr[arr.length]
wersją, przynajmniej w czystej prędkości. Chciałbym zobaczyć wyniki uruchomienia IE.Moje pętle testów porównawczych:
źródło
Myślę, że warto wspomnieć, że push można wywoływać z wieloma argumentami, które zostaną dołączone do tablicy w kolejności. Na przykład:
W rezultacie możesz użyć push.apply, aby dołączyć tablicę do innej tablicy w taki sposób:
Przypisami ES5 ma więcej informacji na temat tego, co dokładnie wcisnąć i zastosować zrobić.
Aktualizacja 2016: dzięki spreadowi nie potrzebujesz
apply
już tego , np .:źródło
Array.prototype.push.apply()
jednak użyć .Możesz użyć
push
iapply
funkcji, aby dołączyć dwie tablice.Dołącza się
array2
doarray1
. Terazarray1
zawiera[11, 32, 75, 99, 67, 34]
. Ten kod jest znacznie prostszy niż pisaniefor
pętli w celu skopiowania każdego elementu w tablicy.źródło
...
operator zamiast zastosowaćconst a1 = [] const a2 = [5,6,7] const.push(...a2)
edit: podświetlanie składniarray1.concat(array2)
w tej sytuacji. Wezwanie dopush
wydaje się niepotrzebne.Dzięki nowemu operatorowi rozkładania ES6 łączenie dwóch tablic za pomocą
push
staje się jeszcze łatwiejsze:To dodaje zawartość
arr2
na końcuarr
.Przykład Babel REPL
źródło
Jeśli
arr
jest tablicą ival
jest wartością, którą chcesz dodać użyj:Na przykład
źródło
Użyj
concat
:źródło
Javascript z ECMAScript 5 standardowego, który jest obsługiwany przez większość przeglądarek teraz, można użyć
apply()
, aby dołączyćarray1
doarray2
.Javascript ze standardem ECMAScript 6, który jest obsługiwany przez Chrome, FF i IE Edge, możesz użyć
spread
operatora:spread
Operator zastąpiarray2.push(...array1);
zearray2.push(3, 4, 5);
gdy przeglądarka myśli logikę.Punkt bonusowy
Jeśli chcesz utworzyć inną zmienną do przechowywania wszystkich elementów z obu tablic, możesz to zrobić:
ES5
var combinedArray = array1.concat(array2);
ES6
const combinedArray = [...array1, ...array2]
Operator rozkładania (
...
) ma rozłożyć wszystkie elementy z kolekcji.źródło
Jeśli chcesz dołączyć dwie tablice -
wtedy możesz użyć:
A jeśli chcesz dodać rekord
g
do array (var a=[]
), możesz użyć:źródło
push()
Metoda dodaje nowe elementy do końca tablicy i zwraca nową długość. Przykład:Dokładna odpowiedź na twoje pytanie jest już udzielona, ale spójrzmy na kilka innych sposobów dodawania elementów do tablicy.
unshift()
Metoda dodaje nowe elementy na początek tablicy i zwraca nową długość. Przykład:Wreszcie
concat()
metoda służy do łączenia dwóch lub więcej tablic. Przykład:źródło
Istnieje kilka sposobów dołączenia tablicy w JavaScript:
1)
push()
sposób dodaje jeden lub większą liczbę elementów na koniec tablicy i zwraca nową długość tablicy.Wynik:
2)
unshift()
sposób dodaje jeden lub większą liczbę elementów do początku tablicy i zwraca nową długość tablicy:Wynik:
3)
concat()
sposób jest stosowany do łączenia dwóch lub więcej tablic. Ta metoda nie zmienia istniejących tablic, ale zamiast tego zwraca nową tablicę.Wynik:
4) Możesz użyć właściwości tablicy,
.length
aby dodać element na końcu tablicy:Wynik:
5)
splice()
sposób zmienia zawartość tablicy poprzez usunięcie elementów i / lub dodania nowych elementów:Wynik:
6) Możesz również dodać nowy element do tablicy, po prostu określając nowy indeks i przypisując wartość:
Wynik:
źródło
push
działa: modyfikuje oryginalną tablicę, wpychając na nią nowe elementy. Czy źle to czytam, czy powinienem to edytować?Teraz możesz skorzystać ze składni ES6 i po prostu:
zachowując oryginalną tablicę niezmienną.
źródło
Jeśli znasz najwyższy indeks (taki jak przechowywany w zmiennej „i”), możesz to zrobić
Jednak jeśli nie wiesz, możesz albo użyć
jak sugerują inne odpowiedzi, lub możesz użyć
Zauważ, że tablica jest oparta na zerach, więc .l zwracają najwyższy indeks plus jeden.
Pamiętaj też, że nie musisz dodawać w kolejności i możesz faktycznie pomijać wartości, jak w
W takim przypadku wartości pomiędzy będą miały wartość niezdefiniowaną.
Dlatego dobrą praktyką jest używanie pętli przez JavaScript w celu sprawdzenia, czy wartość rzeczywiście istnieje w tym momencie.
Można to zrobić w następujący sposób:
jeśli masz pewność, że nie masz żadnych zer w tablicy, możesz po prostu:
Oczywiście upewnij się, że w tym przypadku nie używasz jako warunku myArray [i] (jak niektórzy ludzie w Internecie sugerują na podstawie tego, że gdy i jest większy niż najwyższy indeks, zwróci niezdefiniowany, co daje wynik fałszywe)
źródło
"undefined"
. Musi przeczytaćvoid 0
!"undefined"
jest ciągiem, a"undefined" !== void 0
zatem twójif(myArray[i]
jest fałszem, chyba że tablica w indeksiei
jest ustawiona na ciąg o zawartości równoważnej'u'+'n'+'d'+'e'+'f'+'i'+'n'+'e'+'d'
. Pamiętaj też, że nie powinieneś używaćundefined
, zamiast tego użyjvoid 0
. Ponieważvoid 0
zawsze jest niezdefiniowana wartość, podczas gdyundefined
można ją zdefiniować za pomocą czegoś takiegofunction x(undefined) { alert(undefined) } x("hello world")
, więc nie możesz być pewien, czy ktoś przypadkowo ustawiłwindow["undefined"]=1
lub podobny.Dołącz pojedynczy element
Dołącz wiele elementów
Dołącz tablicę
źródło
arrName.push('newElemenet1, newElemenet2, newElemenet3')
?arrName
długie1
.concat()
, oczywiście, można go również używać z tablicami dwuwymiarowymi. Pętla nie jest wymagana.źródło
Niech właściwość length tablicy zadziała:
myarray.length zwraca liczbę ciągów w tablicy. JS ma wartość zerową, więc kluczem do następnego elementu tablicy będzie bieżąca długość tablicy. DAWNY:
źródło
źródło
Dołącz wartość do tablicy
Ponieważ Array.prototype.push dodaje jeden lub więcej elementów na końcu tablicy i zwraca nową długość tablicy , czasami chcemy po prostu uzyskać nową, aktualną tablicę, abyśmy mogli zrobić coś takiego:
Lub tylko:
źródło
Jeśli używasz ES6, możesz to zrobić za pomocą operatora spreadu .
źródło
możesz to zrobić za pomocą nowej funkcji javascript Es 6:
źródło
jeśli chcesz połączyć 2 tablice bez duplikatu, możesz wypróbować poniższy kod
stosowanie:
Wyjście: [1,2,3,4,5]
źródło
Dodaj pojedynczy element
Aby dołączyć pojedynczy element do tablicy, użyj
push()
metody dostarczonej przez obiekt Array:push()
mutuje oryginalną tablicę.Aby zamiast tego utworzyć nową tablicę, użyj
concat()
metody Array:Zauważ, że
concat()
tak naprawdę nie dodaje elementu do tablicy, ale tworzy nową tablicę, którą możesz przypisać do innej zmiennej lub przypisać ponownie do oryginalnej tablicy (deklarując ją jakolet
, ponieważ nie można ponownie przypisać aconst
):Dołącz wiele elementów
Aby dołączyć wiele elementów do tablicy, możesz użyć
push()
, wywołując ją z wieloma argumentami:Możesz także użyć
concat()
metody, którą widziałeś wcześniej, przekazując listę elementów oddzielonych przecinkiem:lub tablica:
Pamiętaj, że jak opisano wcześniej, ta metoda nie mutuje oryginalnej tablicy, ale zwraca nową tablicę.
źródło
Możesz .push () tę wartość w. Przykład: array.push (wartość);
źródło
Jeśli chcesz dołączyć jedną wartość do tablicy, po prostu użyj metody push. Doda nowy element na końcu tablicy.
Ale jeśli zamierzasz dodać wiele elementów, zapisz elementy w nowej tablicy i połącz drugą tablicę z pierwszą tablicą ... w dowolny sposób.
źródło
Nie mamy funkcji dołączania do Array w javascript, ale mamy push i cofnij , wyobraź sobie, że masz tablicę poniżej:
i lubimy dodawać wartość do tej tablicy, możemy to zrobić, arr.push (6), a to doda 6 na końcu tablicy:
możemy również użyć cofania, zobacz, jak możemy zastosować to:
Są to główne funkcje dodawania lub dodawania nowych wartości do tablic.
źródło
Możesz użyć metody push.
źródło
push()
dodaje nowy element na końcu tablicy.pop()
usuwa element z końca tablicy.Aby dołączyć obiekt (taki jak ciąg lub liczbę) do tablicy, użyj -
array.push(toAppend);
źródło
Dołączanie elementów do tablicy
źródło
Możesz użyć push (), jeśli chcesz dodać wartości np
arr.push("Test1", "Test2");
Jeśli masz tablicę, możesz użyć concat () np
Array1.concat(Array2)
Jeśli masz tylko jeden element do dodania, możesz także spróbować mentodu długości np
array[aray.length] = 'test';
źródło