![](/img/trans.png)
[英]Reference/set nested XML object property using path in a string - JavaScript
[英]How to modify an inner property of a nested object in Javascript using a variable reference
不幸的是,在 object 文字中进行这样的不可变更新有点冗长:
setmyobject({
...myobject,
a: {
...myobject.a,
b: myobject.a.b.map((val, idx) =>
idx === myIndex
? { ...val, c: 3 }
: val
)
}
});
像lodash
这样的库有一些你可能会觉得有用的功能,比如_.set
,它可以让你传入一个属性路径。 另一种方法可能是深度克隆 object 并对其进行变异,但如果您不想要繁重的库负担,上述模式可以正常工作。
我认为这将是最佳实践: https://github.com/kolodny/immutability-helper
import update from 'immutability-helper';
const updatedMyObject = update(myObject, {
a: {b: {[myIndex]: {c: {$set: 3}}}}
});
setmyobject(updatedMyObject);
我看不出你为什么需要在 1 串代码中完全做到这一点。 只需复制 object 即可: const obj2 = {...obj1}
然后设置你想要的属性:
obj2.ab[myIndex].c = 3
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.