0

这是我的数组

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
};

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

4

3 回答 3

4

像这样:

Object.keys(linkArray).length
于 2013-03-14T10:49:43.827 回答
1

试试这个:

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

// Here you can use length
于 2013-03-14T10:50:28.640 回答
0

解决方案是

Object.getOwnPropertyNames(linkArray).length

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

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

在这篇MDN 文章中,您可以看到如何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

于 2013-03-14T10:50:14.003 回答