如何从嵌套对象initialState.models中删除disabled、error属性?
解决方法
先明确你原有代码的问题:
- 删除目标错误:你用
value.disabled(布尔值)作为对象键执行删除,这根本不是目标model的键,自然不会生效 - 仅处理了
disabled属性,遗漏了error - 嵌套遍历
value的属性完全多余,直接操作每个model对象即可
方法一:直接修改原对象
const声明的对象只是无法重新赋值整个对象,内部属性可正常修改,直接遍历删除指定属性:
// 遍历models下的所有子对象 Object.values(myObject.initialState.models).forEach(model => { delete model.disabled; delete model.error; });
方法二:创建新对象(不修改原对象)
如果需要保留原对象不变,通过解构和扩展运算符生成新对象:
const newObject = { ...myObject, initialState: { ...myObject.initialState, models: Object.fromEntries( Object.entries(myObject.initialState.models).map(([key, model]) => { // 解构排除disabled和error,保留其余属性 const { disabled, error, ...restModel } = model; return [key, restModel]; }) ) } };
内容的提问来源于stack exchange,提问作者AbreQueVoy
相关产品推荐
相关产品推荐

