Я ищу чистую функцию для изменения моего неизменного объекта состояния. Исходное состояние, указанное в качестве параметра, должно оставаться нетронутым. Это особенно полезно при работе с такими фреймворками, как Redux, и упрощает работу с неизменный объект в javascript намного проще. Тем более, что работа с оператором распространения объекта с помощью Babel уже возможна.
Я не нашел ничего лучше, чем сначала скопировать объект, а затем назначить/удалить свойство, которое я хочу, вот так:
function updateState(state, item) {
newState = {...state};
newState[item.id] = item;
return newState;
}
function deleteProperty(state, id) {
var newState = {...state};
delete newState[id];
return newState;
}
Я чувствую, что это может быть короче