【问题标题】:How to refer to object fields with a variable? [duplicate]如何使用变量引用对象字段? [复制]
【发布时间】:2011-04-02 15:18:09
【问题描述】:

假设我有一个对象:

var obj = {"A":"a", "B":"b", "x":"y", "a":"b"}

当我想引用“A”时,我只写obj.A

当我输入变量时如何做,即:

var key = "A";

是否有任何返回值或null(如果键不在对象中)的函数

【问题讨论】:

    标签: javascript


    【解决方案1】:

    怎么样:

    json[key]
    

    试试:

    json.hasOwnProperty(key)
    

    关于您问题的第二部分(请参阅Checking if a key exists in a JavaScript object?

    【讨论】:

      【解决方案2】:

      使用括号表示法,如下所示:

      var key = "A";
      var value = json[key];
      

      在 JavaScript 中,这两个是等价的:

      object.Property
      object["Property"];
      

      为了清楚起见,这不是 JSON 特定的,JSON 只是对象表示法的一个特定子集……这适用于任何 JavaScript 对象。如果它不在对象中,则结果将为undefinedyou can try all of this here

      【讨论】:

      • +1。请注意,虽然您提到的两种形式仅当属性不是保留字时才等效...其中在JS中有很多,并且有不少是出乎意料的。所以从这个意义上说object["Property"] 更安全。 OTOH,object.Property 的优势是(当 Property 是静态已知时)像 JSLint 这样的工具可以对它们进行检查。
      猜你喜欢
      • 1970-01-01
      • 2011-06-19
      • 1970-01-01
      • 2015-09-03
      • 2017-10-27
      • 2019-04-28
      • 2013-08-23
      • 1970-01-01
      相关资源
      最近更新 更多