Każdy element tej tablicy ma pewną liczbę.
var items = Array(523,3452,334,31, ...5346);
Jak zamienić pewną liczbę na tablicę na nową?
Na przykład, chcemy zastąpić 3452 1010, jak byśmy to zrobili?
javascript
arrays
James
źródło
źródło
replace
metody dla tablic?Odpowiedzi:
Zaleca się również, aby nie używać metody konstruktora do inicjowania tablic. Zamiast tego użyj dosłownej składni:
Możesz także użyć
~
operatora, jeśli interesujesz się zwięzłym JavaScriptem i chcesz skrócić-1
porównanie:Czasami lubię nawet pisać
contains
funkcję, aby streścić tę kontrolę i ułatwić zrozumienie, co się dzieje. Niesamowite jest to, że działa zarówno na tablicach, jak i na ciągach znaków:Począwszy od ES6 / ES2015 dla ciągów i proponowanych dla ES2016 dla tablic, możesz łatwiej określić, czy źródło zawiera inną wartość:
źródło
contains
:var contains = (a, b) => !!~a.indexOf(b)
: PArray.prototype.includes
zamiast tego.in
aby sprawdzić, czy obiekt ma klucz (np.'property' in obj
), Lub możesz również zapętlić wartości obiektu za pomocąObject.values(obj).forEach(value => {})
.Array.indexOf()
Sposób zastąpi pierwszy przypadek. Aby uzyskać każdą instancję, użyjArray.map()
:Oczywiście tworzy to nową tablicę. Jeśli chcesz to zrobić na miejscu, użyj
Array.forEach()
:źródło
Array.indexOf()
został wprowadzony w tym samym czasie comap()
iforEach()
. Jeśli wspierasz IE8 lub wcześniejszą wersję i nie używasz podkładki dystansowej, aby dodać obsługę, lepiej skorzystaj z odpowiedzi mellamokb .Moje sugerowane rozwiązanie to:
Operacja łączenia usunie 1 element, zaczynając od pozycji 1 w tablicy (tj.
3452
), I zastąpi go nowym elementem1010
.źródło
1
element zostanie usunięty, podczas gdy w rzeczywistości pierwszy parametr oznacza, że operacja odbywa się z indeksem1
. developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…Użyj indexOf, aby znaleźć element.
źródło
Łatwo to zrobić za pomocą
for
pętli.źródło
Możesz edytować dowolną liczbę list za pomocą indeksów
na przykład :
źródło
Jeśli używasz złożonego obiektu (lub nawet prostego) i możesz używać es6,
Array.prototype.findIndex
to jest dobre. Jeśli chodzi o tablicę PO, mogliby zrobić,W przypadku bardziej złożonych obiektów to naprawdę świeci. Na przykład,
źródło
Wymiana może być wykonana w jednym wierszu:
Lub stwórz funkcję do ponownego użycia:
źródło
Sposób ES6 :
Wanna Zamieniamy
3452
z1010
, roztwór:Z pewnością pytanie brzmi już wiele lat temu i na razie wolę używać niezmiennego rozwiązania, na pewno jest niesamowite
ReactJS
.Do częstego użytkowania oferuję poniższą funkcję:
źródło
Pierwsza metoda
Najlepszy sposób w jednym wierszu, aby zastąpić lub zaktualizować element tablicy
Na przykład:
Druga metoda
Innym prostym sposobem wykonania tej samej operacji jest:
źródło
Najprostszym sposobem jest użycie niektórych bibliotek, takich jak underscorejs i metoda mapy.
źródło
replace
teraz ..._.replace([1, 2, 3], 2, 3);
Niezmienny sposób na zastąpienie elementu na liście za pomocą operatorów i
.slice
metody rozprzestrzeniania ES6 .Sprawdź, czy działa
źródło
Jeśli znasz wartość, użyj
Jeśli chcesz wiedzieć, że ta wartość jest obecna, czy nie, użyj,
Jeśli znasz miejsce (pozycję), użyj bezpośrednio,
Jeśli chcesz wymienić kilka elementów i wiesz, że tylko pozycja początkowa oznacza,
aby uzyskać więcej informacji o .splice
źródło
stąd możesz usunąć określoną wartość z tablicy i na podstawie tego samego indeksu możesz wstawić wartość do tablicy.
źródło
Cóż, jeśli ktoś zastanawia się, jak zastąpić obiekt z jego indeksu w tablicy, oto rozwiązanie.
Znajdź indeks obiektu według jego identyfikatora:
Zastąp obiekt za pomocą metody Object.assign ():
źródło
Odpowiedź od @ gilly3 jest świetna.
Jak rozszerzyć to dla tablicy obiektów
Wolę następujący sposób aktualizacji nowego zaktualizowanego rekordu do mojej tablicy rekordów, gdy otrzymuję dane z serwera. Utrzymuje porządek w nienaruszonym stanie i całkiem prosto jedna linijka.
users = users.map(u => u.id !== editedUser.id ? u : editedUser);
źródło
Najpierw przepisz tablicę w następujący sposób:
Następnie uzyskaj dostęp do elementu w tablicy poprzez jego numer indeksu. Wzór na określenie numeru indeksu to:
n-1
Aby zastąpić pierwszy element
(n=1)
w tablicy, napisz:W twoim przykładzie liczba
3452
znajduje się na drugiej pozycji(n=2)
. Tak więc formuła określająca numer indeksu to2-1 = 1
. Więc napisać następujący kod do wymiany3452
z1010
:źródło
Oto podstawowa odpowiedź w funkcji wielokrotnego użytku:
źródło
Rozwiązałem ten problem, używając pętli i iteracji po oryginalnej tablicy oraz dodając pozycje pasujących obszarów do innej tablicy, a następnie zapętlając tę tablicę i zmieniając ją w oryginalnej tablicy, a następnie zwracam, użyłem funkcji strzałki i zwykłej funkcji też by działał.
źródło
źródło
Najłatwiej jest to zrobić.
źródło
replaceWhat = 523, replaceWith = 999999
nie daje poprawnych wynikówOto jeden liniowiec. Zakłada, że element będzie w tablicy.
źródło
Jeśli chcesz prosty oneliner z sintaksem cukrowym, możesz po prostu:
Lubić:
Jeśli nie masz identyfikatora, możesz skreślić element taki jak:
źródło