【问题标题】:Javascript array [duplicate]Javascript数组[重复]
【发布时间】:2013-05-29 18:03:39
【问题描述】:

我正在使用其他开发人员的一些代码,遇到了一些我以前从未见过的东西。代码的基本功能是在对象内的对象中查找一段数据。对象格式为theObj {key:Object, key:Object,...},要搜索的数据存储在两个变量inkey,lookfor中。

$.each(theObj, function(m,n){
    if(typeof(n['data'][inkey]) != "undefined" && n['data'][inkey] !== null) {
        if(n['data'][inkey][lookfor] == 1){..}
    }
});

['data'] 有什么作用?

【问题讨论】:

  • n.data一样。
  • 是对象中的key。含义 n['data'] 表示获取value of key(propery name) data in object n
  • 称为括号表示法。它访问属性data 或对象n。您已经从数组中知道了这一点:arr[0] 访问数组的第一个元素,即数组 arr 的属性 0

标签: javascript jquery arrays


【解决方案1】:

它正在对象n中寻找属性data - n['data']n.data相同

【讨论】:

    【解决方案2】:

    n['data']n.data 相同,但有时使用方括号会很有用,例如当您需要使用n['data'][inkey] 之类的变量时。

    顺便说一句,你或他应该使用n.data.hasOwnProperty(inkey) 而不是typeof(n['data'][inkey]) != "undefined"

    你可以这样写:

    $.each(theObj, function(m,n){
        if(n.data.hasOwnProperty(inkey) && n.data[inkey] !== null) {
            if(n.data[inkey][lookfor] == 1){..}
        }
    });
    

    【讨论】:

      【解决方案3】:

      data 是对象中的属性名称或键。所以n['data'] 将返回对象n 中属性名称data 的属性值。

      你所拥有的是一个对象而不是一个数组。

      Array 包含具有基于整数索引的元素列表,其中 Object 包含具有基于键的索引的元素列表。

      【讨论】:

        猜你喜欢
        • 2012-07-23
        • 2016-01-11
        • 2013-09-18
        • 1970-01-01
        • 2013-07-31
        • 1970-01-01
        • 2013-03-21
        • 2018-07-31
        相关资源
        最近更新 更多