找出以Object表示法表示的数组的长度

时间:2013-03-14 10:45:37

标签: javascript arrays object

这是我的数组

var linkArray = {
boothsizeDiv_link: false,
furnishingsprovidedDiv_link: false,
electricalDiv_link: false,
rentalfurnishingsDiv_link: false,
gesgraphicsDiv_link: false,
geslaborDiv_link: false,
contractorDiv_link: false,
carpetingDiv_link: false,
boothlightingDiv_link: false,
javitsDiv_link: false,
boothsealDiv_link: false,
mannequinsDiv_link: false,
calcDiv_link: false
};

如何找出这个数组长度?我用Google搜索但没有用..

3 个答案:

答案 0 :(得分:4)

像这样:

Object.keys(linkArray).length

答案 1 :(得分:1)

试试这个:

var i, length = 0;
for(i in linkArray) {
  if(linkArray.hasOwnProperty(i)) {
    length++;
  }
}

// Here you can use length

答案 2 :(得分:0)

解决方案是

Object.getOwnPropertyNames(linkArray).length

但要小心,因为这是 NOT 一个数组,这是一个对象。

请注意,它不适用于9以下的Internet Explorers。

在此MDN Article中,您可以看到如何使用getOwnPropertyNames

如果您也想在浏览器中使用它而不支持它,您只需在脚本中插入以下代码段:

Object.getOwnPropertyNames = Object.getOwnPropertyNames || function(obj) {
    var ownProperties = [];
    var current = '';
    for(current in obj) {
      if(linkArray.hasOwnProperty(current)) {
        ownProperties.push(current);
      }
    }
    return ownProperties;
}

(我刚刚写了它,目前无法测试它,但它应该可以工作)

使用此代码段,您可以在本机没有它的浏览器中模拟Object.getOwnPropertyNames

显然,您可以使用getOwnPropertyNames

而不是keys