Javascript数组

Javascript数组,javascript,jquery,arrays,Javascript,Jquery,Arrays,我正在使用另一个开发人员的一些代码,遇到了一些我以前从未见过的东西。代码的基本功能是在对象中查找对象中的一段数据。对象格式为theObj{key:object,key:object,…},正在搜索的数据存储在两个变量inkey,lookfor中 $.each(theObj, function(m,n){ if(typeof(n['data'][inkey]) != "undefined" && n['data'][inkey] !== null) { if

我正在使用另一个开发人员的一些代码,遇到了一些我以前从未见过的东西。代码的基本功能是在对象中查找对象中的一段数据。对象格式为
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']
做什么?

它在对象中查找属性
data
n
-
n['data']
n相同。data
数据
是对象中的属性名称或键。因此
n['data']
将返回对象
n
中属性名
data
的属性值

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


数组包含基于整数索引的元素列表,而else对象包含基于键索引的元素列表

n['data']
n.data
相同,但有时在需要使用
n['data'][inkey]
等变量时使用括号是很有用的

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

你可以这样写:

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

它与
n.data
相同。它是对象中的键。意思是n['data']表示获取对象n中键(属性名)数据的
值。它被称为括号表示法。它访问属性
数据
或对象
n
。您已经从数组中了解到这一点:
arr[0]
访问数组的第一个元素,即数组
arr
的属性
0
。相关:。