Poszukuję czystej funkcji, aby zmodyfikować mój niezmienny obiekt stanu. Oryginalny stan podany jako parametr musi pozostać nietknięty. Jest to szczególnie przydatne podczas pracy z frameworkami takimi jak Redux i znacznie ułatwia pracę z obiektem immutable w javascript. Zwłaszcza, że praca z operatorem rozprzestrzeniania obiektu przy użyciu Babel jest już możliwa.Jaki jest najkrótszy sposób modyfikowania niezmiennych obiektów za pomocą operatorów spreadu i destruktury
nie znalazłem nic lepszego niż pierwsza kopia obiektu, a od przypisać/usunąć właściwość chcę tak:
function updateState(state, item) {
newState = {...state};
newState[item.id] = item;
return newState;
}
function deleteProperty(state, id) {
var newState = {...state};
delete newState[id];
return newState;
}
czuję się jak to może być krótszy
Odpowiedzi na własne pytanie sekund po zapytaniu ?! – ColinE
Użyłem pola pod formularzem pytania, aby na nie odpowiedzieć, ponieważ znalazłem rozwiązanie przed opublikowaniem pytania. Ponieważ szukanie go w Google jest dość trudne, umieszczam je dla wszystkich tutaj. – Tarion
Ale tak naprawdę interesujące jest również usunięcie nieruchomości. Ponieważ ustawienie właściwości na undefined, nie usuwa klucza, a usuwanie nie działa w definicjach obiektów;) – Tarion