【问题标题】:Look up property by name using a string variable [duplicate]使用字符串变量按名称查找属性[重复]
【发布时间】:2012-03-02 02:27:47
【问题描述】:

我想使用变量内的字符串查找 Javascript 对象的属性,但是当我执行下面的代码时,第二个警报返回 undefined

 <script>
    var operations = {"Create": "POST",
                      "Read": "GET",
                      "Delete": "DELETE"
    };
    //result POST
    alert(operations.Create);

    var method="Create";
    alert(operations.method); //returns undefined, I want it to return "POST"
 </script>

如何使用“method”变量来查找我在脚本开头创建的“Create”属性?

【问题讨论】:

  • 每天 100 次。有人发现任何骗子吗?
  • 您对脚本有什么期望?
  • (原问题已被编辑以澄清作者的问题。)

标签: javascript


【解决方案1】:
var operations = {"Create" : "POST",
                  "Read" : "GET",
                  "Delete" : "DELETE"
                };

alert(operations.Create);

operations.method = 'Create';
alert(operations.method);

var method = 'Create';
alert(method);

【讨论】:

    【解决方案2】:

    我相信您将方法声明为单独的字符串对象。而不是

    var method="Create";
    

    尝试做

    operations.method = "Create";
    

    这将使 method 成为 operations 对象的实际属性,您可以从 operations.method 或 操作[“方法”]。

    【讨论】:

      【解决方案3】:

      你应该这样做:

      var method=operations.Create;
      alert(method);
      

      var method="Create";
      alert(operations[method]);
      

      【讨论】:

        【解决方案4】:

        Operations 没有方法属性。如果您想将该值添加到您的对象,您可以这样做:

        operations.method = "Create";
        alert(operations.method);
        

        如果要获取特定字符串键的值,可以通过索引器查找:

        alert(operations["Create"]);
        

        【讨论】:

          【解决方案5】:

          试试

          operations[method]

          如果您想通过变量访问,则不能使用点表示法。原因是当您使用点表示法时,解释器没有使用变量的值;它认为变量名本身是关键。换句话说,它正在寻找关键的“方法”,而不是“创建”。

          【讨论】:

            【解决方案6】:

            方法没有在你的对象声明中定义,所以它正在做它应该做的事情。 var 方法不包含在 ooerations 中。你想定义。

            【讨论】:

              猜你喜欢
              • 2011-05-14
              • 1970-01-01
              • 2014-06-02
              • 1970-01-01
              • 2010-12-14
              • 1970-01-01
              • 1970-01-01
              • 2020-12-16
              • 1970-01-01
              相关资源
              最近更新 更多