Javascript 如果对象位于数组中,如何查找键的总数

Javascript 如果对象位于数组中,如何查找键的总数,javascript,Javascript,可能重复: 如果是一个对象数组,如何查找键的总数。当我检查数组的长度时,它会给我一个 如果您想知道数组中对象的唯一属性的数量,应该这样做 var uniqueProperties = []; for (var i = 0, length = arr.length; i < length; i++) { for (var prop in arr[i]) { if (arr[i].hasOwnProperty(prop) && u

可能重复:


如果是一个对象数组,如何查找键的总数。当我检查数组的长度时,它会给我一个

如果您想知道
数组中
对象
的唯一属性的数量,应该这样做

var uniqueProperties = [];

for (var i = 0, length = arr.length; i < length; i++) {
   for (var prop in arr[i]) {
       if (arr[i].hasOwnProperty(prop) 
           && uniqueProperties.indexOf(prop) === -1
          ) {
          uniqueProperties.push(prop);
       }
   } 
}

var uniquePropertiesLength = uniqueProperties.length;
var uniqueProperties=[];
对于(变量i=0,长度=arr.length;i


请注意,
数组
没有最好的浏览器支持。您总是可以(尽管为了安全起见,我会将其作为
util
对象或类似对象的一部分)。

如果数组只有一个对象,则
array[0]
表示该对象


如果有不止一个对象,你需要决定你到底要数什么。

@Darin Dimitrov:这是一个对象数组。。。这不是一个简单的问题。@Darin Dimitrov:他前面的问题是一个重复的问题,这个问题问了一些不同的问题。不确定这是否应该是一个单独的问题,但我猜他没有从之前的帖子中得到回应。这是对的——数组中有一个对象。这个问题需要润色一下。。。您正在尝试从数组中的对象获取密钥总数吗?还是别的什么?@John Cooper,然后将复制中的技术应用于单个对象的数组[0]
。@Nicolae Albu:是的,我正试图从数组中的对象获取密钥总数这意味着什么?uniqueProperties.indexOf(propertyName) === -1@JohnCooper:它检查属性名称是否已存在于
uniqueProperties
数组中。请务必查看有关浏览器兼容性的脚注。
var uniqueProperties = [];

for (var i = 0, length = arr.length; i < length; i++) {
   for (var prop in arr[i]) {
       if (arr[i].hasOwnProperty(prop) 
           && uniqueProperties.indexOf(prop) === -1
          ) {
          uniqueProperties.push(prop);
       }
   } 
}

var uniquePropertiesLength = uniqueProperties.length;