【发布时间】:2019-02-04 10:15:20
【问题描述】:
拥有这种形式的对象:
myObj = {
id: 1,
values: {
internal: {
myProp1: true
myProp2: true
},
external: {
myProp1: true
myProp2: true
}
}
};
我希望当我选择一个选项时,internal 或 external 能够仅针对我选择的一个选项将 myProp1 设置为 false。
在这种情况下,如果我选择internal,对象应该如下所示:
myObj = {
id: 1,
values: {
internal: {
myProp1: false
myProp2: true
},
external: {
myProp1: true
myProp2: true
}
}
};
我试图这样做,但我做错了:
Object.keys(myObj).forEach(element => {
if(element === "values") {
element.forEach(innerElement => {
if(innerElement === "internal") {
innerElement.myProp1= false;
}
});
}
});
有什么建议吗?
【问题讨论】:
-
你可以像访问对象道具
myObj.values.internal.myProp1 = false一样访问子对象 -
如果您想使用字符串作为属性名称,您可以使用
[...]表示法,这是一个示例:myObj.values[innerElement].myProp1 = false。您可以找到更多详细信息HERE
标签: javascript object ecmascript-6 key