我正在寻找一个纯函数来修改我的不可变状态对象。作为参数给出的原始状态必须保持不变。这在使用像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;
}
感觉可以短一点