【发布时间】:2023-03-11 02:49:01
【问题描述】:
考虑一个函数返回一个嵌套对象,我想修改嵌套对象内部的属性。
在下面的示例中,我多次调用该函数,或者我需要将它存储在一个临时变量中。有没有办法在大括号内只调用一次并在同一个对象内多次传播/修改。
const getObject = () => {
return {
a: {
b: {
c: 1,
d: 2,
}
},
e: 3
}
}
var modifiedD = {
...getObject(),
a: {
b: {
...getObject().a.b,
d: 4
}
}
}
console.log(modifiedD);
【问题讨论】:
-
您可以为它创建一个工厂函数,只需在其词法范围内使用 getObject() 的结果。或者,您可以使用 lodash 及其 set 方法,因为您现在已经知道要更改的内容。 lodash.com/docs/4.17.11#set
-
const initialvalue = getObject();
标签: javascript ecmascript-6 ecmascript-2016