Javascript使用变量作为属性名称来切换布尔值

如何解决以下代码中的问题?

问题是我想在我的GUI中切换布尔值。 我可以将“ An”和“ sta”保存在变量中。

var a={
  "An":{
    "sta":true,"stb":false
  },"Bn":{
    "sta":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中的示例代码得到的消息是“未定义”。

a704271485 回答:Javascript使用变量作为属性名称来切换布尔值

也许对您有帮助?

var a={
  "An":{
    "sta":true,"stb":false
  },"Bn":{
    "sta":false,};

var x=function(arg) {return arg;}
a.An.x=x("sta");
console.log(a.An.sta);//true
console.log(a.An.x);//sta
,

所以我解决了我的问题。这只是一个拼写错误。 a.An.y-->a.An[y]

var a={
  "An":{
    "sta":true,"stb":false,"test": "stb"
  },};
var y=a.Bn.test;
console.log(a.An.sta);//true
console.log(a.An[y]);//false
本文链接:https://www.f2er.com/3170026.html

大家都在问