Mam obiekt, który wygląda tak:
var obj = {
"objectiveDetailId": 285,
"objectiveId": 29,
"number": 1,
"text": "x",
"subTopics": [{
"subTopicId": 1,
"number": 1
}, {
"subTopicId": 2,
"number": 32
}, {
"subTopicId": 3,
"number": 22
}]
}
var stToDelete = 2;
Mam lodash
zainstalowane w moim wniosku o innych rzeczach. Czy istnieje skuteczny sposób lodash
usunięcia wpisu: {"subTopicId":2, "number":32}
z obj
obiektu?
Czy jest na to sposób javascript?
javascript
arrays
object
lodash
Samantha JT Star
źródło
źródło
splice
( developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/… ), aby usunąć element z listyresult = _.pull(arr, value)
To spowodowałoby usunięcie wszystkich pasujących wartości z listy.Odpowiedzi:
Jak wskazały w komentarzach liryki, bardziej idiomatycznym i lodashowym sposobem na to byłoby użycie
_.remove
, w ten sposóbOprócz tego możesz przekazać funkcję predykatu, której wynik zostanie użyty do określenia, czy bieżący element ma zostać usunięty, czy nie.
Alternatywnie możesz utworzyć nową tablicę, filtrując starą za pomocą
_.filter
i przypisując ją do tego samego obiektu, w ten sposóbLub
źródło
_.filter
wersję._.filter
zwraca element, jeśli predykat jest prawdziwy. Twoja implementacja zwróci wszystkie niechciane elementy zamiast tych, które chcesz zachować_.reject
zamiast_.filter
tego samego predykatu. Sprawdź moją odpowiedź, aby uzyskać więcej informacji!Po prostu użyj vanilla JS. Możesz użyć
splice
do usunięcia elementu:Próbny
źródło
Is there an efficient way to use _lodash to delete
możesz to zrobić
_pull
.sprawdź odniesienie
źródło
_.pull
używa ścisłej równości, tj . === . Dwa różne zwykłe obiekty nigdy nie będą porównywane jako równe przez===
(lub przez==
to). W ten sposób powyższy kod nigdy nie usunie żadnych elementów z tablicy._.remove
po prostu opróżnia tablicę.Możesz teraz użyć _.reject, który pozwala filtrować na podstawie tego, czego chcesz się pozbyć, zamiast tego, co musisz zachować.
w przeciwieństwie
_.pull
albo_.remove
że tylko praca na macierzach,._reject
pracuje na dowolnyCollection
źródło
Znam na to cztery sposoby
Pierwszy:
Drugi to:
W ten sposób tablica zostanie zmutowana.
Trzeci to:
Ostatni to:
uczę się
lodash
Odpowiedz, aby zrobić rekord, abym mógł go później znaleźć.
źródło
reject
Oprócz odpowiedzi @thefourtheye, używając predykatu zamiast tradycyjnych funkcji anonimowych:
LUB
źródło
lodasz i maszynopis
źródło
Oto prosta funkcja lodash z tablicą i usuwaniem jej z numerem indeksu.
źródło