【问题标题】:How to get value in an object's key using a variable referencing that key?如何使用引用该键的变量获取对象键中的值?
【发布时间】:2021-10-17 09:09:37
【问题描述】:

我有一个对象,我可以引用键 a,如下所示:

var obj = {
   a: "A",
   b: "B",
   c: "C"
}

console.log(obj.a); // return string : A

我想通过使用变量来引用对象键来获取值,如下所示:

var name = "a";
console.log(obj.name) // this prints undefined, but I want it to print "A"

我该怎么做?

【问题讨论】:

    标签: javascript


    【解决方案1】:

    使用[] 符号表示属性的字符串:

    console.log(obj[name]);
    

    否则它会寻找“name”属性,而不是“a”属性。

    【讨论】:

      【解决方案2】:

      obj["a"] 等价于obj.a 所以使用obj[name] 你会得到“A

      【讨论】:

      • 请注意 obj[name] 将返回未定义的 obj.name。
      • 如果你写的是少量代码,请使用反引号 ``
      【解决方案3】:

      使用这个语法:

      obj[name]
      

      请注意,对于所有有效的 JS 标识符,obj.xobj["x"] 相同,但后一种形式接受所有字符串作为键(不仅仅是有效标识符)。

      obj["Hey, this is ... neat?"] = 42
      

      【讨论】:

        【解决方案4】:

        你可以像这样得到key中的value...

        var obj = {
           a: "A",
           b: "B",
           c: "C"
        };
        
        console.log(obj.a);
        
        console.log(obj['a']);
        
        name = "a";
        console.log(obj[name])

        【讨论】:

        • 谢谢,我个人喜欢obj.a语法[+1]
        【解决方案5】:

        我使用以下语法:

        objTest = {"error": true, "message": "test message"};
        

        得到错误:

         var name = "error"
         console.log(objTest[name]);
        

        获取消息:

         name = "message"
         console.log(objTest[name]);
        

        【讨论】:

          【解决方案6】:

          https://jsfiddle.net/sudheernunna/tug98nfm/1/

           var days = {};
          days["monday"] = true;
          days["tuesday"] = true;
          days["wednesday"] = false;
          days["thursday"] = true;
          days["friday"] = false;
          days["saturday"] = true;
          days["sunday"] = false;
          var userfalse=0,usertrue=0;
          for(value in days)
          {
             if(days[value]){
             usertrue++;
             }else{
             userfalse++;
             }
              console.log(days[value]);
          }
          alert("false",userfalse);
          alert("true",usertrue);
          

          【讨论】:

            【解决方案7】:
            var o = { cat : "meow", dog : "woof"};
            var x = Object.keys(o);
            
            for (i=0; i<x.length; i++) {
              console.log(o[x[i]]);
            }
            

            IAB

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2015-01-24
              • 2012-10-27
              • 1970-01-01
              • 2020-03-14
              • 1970-01-01
              • 2020-09-02
              相关资源
              最近更新 更多