javascript - Javascript 使用变量作为属性名称来切换布尔值
问题描述
如何解决下面代码中的问题?
问题是我想在我的 GUI 中切换布尔值。我可以将“An”和“sta”保存在变量中。
var a={
"An":{
"sta":true,
"stb":false
},
"Bn":{
"sta":false,
"stb":false
},
};
var x="sta";
console.log(a.An.sta);//true
console.log(a.An.x);//undefined
如果我想将“An”中“sta”的布尔值从 true 更改为 false,那么我可以用这样的一行来做到这一点:
Object.defineProperty(arr.An, "sta", {value: false});
或者:
arr.An.sta=false;
然后我可以切换布尔值:
if(a.An.x==true){
a.An.sta=false;
}
如果我使用变量 x 执行此操作,我从 codepen 中的示例代码中得到的消息是“未定义”。
解决方案
也许这对你有帮助?
var a={
"An":{
"sta":true,
"stb":false
},
"Bn":{
"sta":false,
"stb":false
},
};
var x=function(arg) {return arg;}
a.An.x=x("sta");
console.log(a.An.sta);//true
console.log(a.An.x);//sta
推荐阅读
- java - Java 中是否有 JavaScript Object.assign() 类似物?
- python - 在 VS Code 中找不到 pandas 的定义
- java - Cloud Stream 中的@EnableBinding 在后面做什么?
- mysql - 如何比较MySql中的初始记录和最新记录
- python - 从熊猫数据框中随机删除每列的单个值?
- vb.net - 如何在 vb.net 中以编程方式创建新的 microsoft access 数据库
- r - 尝试删除在 R 中转置后创建的第一列通用变量名
- javascript - 内部具有相同值的多个键名
- python - WinError 10049 套接字不适用于公共 ip Python3
- java - 计算处理中的差异