如何使用jQuery获取数组键名?

bei*_*lex 5 javascript arrays jquery

我有一个这样的数组:

var myArray = new Array();

myArray['foo'] = {
    Obj: {
        key: value
    }
};
myArray['bar'] = {
    Obj: {
        key: value
    }
};
Run Code Online (Sandbox Code Playgroud)

当我这样做时,console.log(myArray)我只是变空了[ ]。当我尝试使用 jQuery 迭代数组时,each该函数不会运行。

如何获取数组的“foo”和“bar”部分?

示例代码:

console.log(myArray); // [ ]

jQuery.each(myArray, function(key, obj) {
    console.log(key); // should be 'foo' following by 'bar'
});
Run Code Online (Sandbox Code Playgroud)

此外,为什么这样做:

jQuery.each(myArray[foo], function(obj, values) {

    // Why does this work if there are no associative arrays in JS?

});
Run Code Online (Sandbox Code Playgroud)

Jon*_*han 3

如果你想像这样访问它,你需要将它定义为一个对象:

var myObj= {};

myObj.foo = ...;
myObj.bar = ...;
Run Code Online (Sandbox Code Playgroud)

myObj["bar"]现在您可以访问类似或的属性myObj.bar

注意:
要循环遍历所有属性,明智的做法是添加额外的检查。这是为了防止您循环遍历继承的属性。

for (var key in obj) {
    if (obj.hasOwnProperty(key)) {
        // Do stuff.
    }
}
Run Code Online (Sandbox Code Playgroud)