Mam szereg takich obiektów:
var myArray = [
{field: 'id', operator: 'eq', value: id},
{field: 'cStatus', operator: 'eq', value: cStatus},
{field: 'money', operator: 'eq', value: money}
];
Jak usunąć konkretny na podstawie jego właściwości?
np. Jak usunąć obiekt tablicy z „pieniędzmi” jako właściwością pola?
javascript
jquery
arrays
object
properties
imperium2335
źródło
źródło
filter()
jest dostępna tylko dla Internet Explorera 9+filter()
tworzy nową tablicę, co jest w porządku, jeśli możesz ponownie przypisać zmienną i wiedzieć, że nie ma innych obszarów kodu, które mają do niej odniesienia. To nie zadziała, jeśli będziesz musiał zmodyfikować oryginalny obiekt tablicy.Iteruj przez tablicę i znajdź
splice
te, których nie chcesz. Aby ułatwić korzystanie, iteruj wstecz, abyś nie musiał brać pod uwagę rzeczywistej natury tablicy:źródło
Powiedz, że chcesz usunąć drugi obiekt za pomocą jego właściwości pola.
Z ES6 jest to takie proste.
źródło
splice
zmienia oryginalną tablicę, więc wartość, którą otrzymujesz, to element, który został usunięty, ale jeśli przyjrzysz sięmyArray
temu elementowi, będzie go brakować.Możesz użyć lodIsa findIndex, aby uzyskać indeks określonego elementu, a następnie go użyć.
Aktualizacja
Możesz także użyć ESI findIndex ()
źródło
myArray
tutaj jest szereg obiektów.Oto kolejna opcja przy użyciu jQuery grep. Podaj
true
jako trzeci parametr, aby zapewnić, że grep usuwa elementy pasujące do twojej funkcji.Jeśli już używasz jQuery, nie jest wymagana podkładka dystansowa, co może być przydatne w przeciwieństwie do używania
Array.filter
.źródło
W ES6 tylko jedna linia.
:)
źródło
Poniżej znajduje się kod, jeśli nie używasz jQuery. Próbny
Możesz także użyć biblioteki podkreślania, która ma wiele funkcji.
Underscore to biblioteka paska narzędzi dla JavaScript, która zapewnia wiele funkcji programowania funkcjonalnego
źródło
Element jest obiektem w tablicy. Trzeci parametr
true
oznacza zwróci tablicę elementów, która zawiedzie logikę funkcji,false
oznacza, że zwróci tablicę elementów, która zawiedzie logikę funkcji.źródło
Za pomocą biblioteki lodash :
źródło
W oparciu o niektóre komentarze powyżej poniżej znajduje się kod usuwania obiektu na podstawie nazwy klucza i wartości klucza
źródło
Rozwiązanie jAndy jest prawdopodobnie najlepsze, ale jeśli nie możesz polegać na filtrze, możesz zrobić coś takiego:
źródło
Korzystanie z biblioteki Lodash jest proste
źródło