Ich bin auf der Suche nach einer reinen Funktion, mein unveränderliches Statusobjekt zu ändern. Der ursprüngliche als Parameter angegebene Zustand muss unberührt bleiben. Dies ist besonders nützlich beim Arbeiten mit Frameworks wie Redux und macht das Arbeiten mit immutable Objekt in Javascript viel einfacher. Zumal das Arbeiten mit dem Objektspreiz-Operator über Babel bereits möglich ist.Was ist der kürzeste Weg, um unveränderliche Objekte mit Spread-und Destrukturierung Operatoren zu ändern
ich etwas besser als zuerst das Objekt kopieren und als assign/löschen Sie die Eigenschaft ich so nicht gefunden werden soll:
function updateState(state, item) {
newState = {...state};
newState[item.id] = item;
return newState;
}
function deleteProperty(state, id) {
var newState = {...state};
delete newState[id];
return newState;
}
Ich fühle mich wie es
kürzer sein könnte
Beantworten Sie Ihre eigene Frage Sekunden nach der Frage ?! – ColinE
Ich habe das Feld unter dem Frageformular verwendet, um es zu beantworten, da ich die Lösung vor dem Posten der Frage gefunden habe. Da das googeln ziemlich schwierig ist, habe ich es für jeden hier gemacht. – Tarion
Aber eigentlich ist das Entfernen einer Eigenschaft auch eine interessante Frage. Da das Festlegen einer Eigenschaft auf undefiniert ist, wird der Schlüssel nicht entfernt, und Löschen scheint innerhalb von Objektdefinitionen nicht zu funktionieren;) – Tarion