0

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

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

做什么的['data']

4

3 回答 3

4

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

于 2013-06-03T14:36:46.757 回答
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){..}
    }
});
于 2013-06-03T14:40:26.107 回答
1

data是对象中的属性名称或键。因此将返回objectn['data']中属性名称的属性值。datan

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

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

于 2013-06-03T14:37:40.117 回答