在Javascript/jQuery中获取对象的长度

Res*_*n01 3 javascript arrays

我试图在jQuery中设置一个数组,然后我需要对它进行for循环.但似乎我出于某种原因无法使用关联数组?

var items = new Array();
items['foo'] = 123456;
items['bar'] = 789012;
items['baz'] = 345678;
items['bat'] = 901234;
alert(items.length);
Run Code Online (Sandbox Code Playgroud)

这只是一个测试,但它返回0?

the*_*dox 11

您无法associative array在JavaScript中制作您想要的内容,而是可以使用Object.

例如:

var items = {
  foo : 123456,
  bar : 789012,
  baz : 345678,
  bat : 901234
}
Run Code Online (Sandbox Code Playgroud)

并计算你可以做的长度:

var getObjectSize = function(obj) {
    var len = 0, key;
    for (key in obj) {
        if (obj.hasOwnProperty(key)) len++;
    }
    return len;
};
Run Code Online (Sandbox Code Playgroud)

使用: getObjectSize(items); // output: 4

欲了解更多请参见这里.

另一个是:

Object.keys(items).length;
Run Code Online (Sandbox Code Playgroud)

但并非所有浏览器都支持.