Biorąc pod uwagę stan takiego:Jak usunąć obiekt z tablicy w niezmiennym?
state = {
things: [
{ id: 'a1', name: 'thing 1' },
{ id: 'a2', name: 'thing 2' },
],
};
Jak mogę utworzyć nowy stan, w którym ID „a1” jest usuwany? Jest to dość łatwe do pchania nowe pozycje:
return state.set(state.get('things').push(newThing));
Ale nie mogę dowiedzieć się, jak wyszukać i usunąć obiekt przez jego id
nieruchomości. Próbowałem to:
return state.set('tracks',
state.get('tracks').delete(
state.get('tracks').findIndex(x => x.get('id') === 'a2')
)
)
Ale wydaje się brudny, plus to działa tylko wtedy, gdy element zostanie znaleziony, bo jeśli findIndex
zwrotów -1
, że to ważna wartość dla delete
.
'state.update („rzeczy”, rzeczy => rzeczy. filter (thing => thing.get ('id')! == 'a2'); ' – zerkms