关于jquery:如何在Javascript变量中查找键的数量?

How to find number of keys in Javascript variable?

本问题已经有最佳答案,请猛点这里访问。

我有一个变量,如下所示:

1
2
3
4
5
6
7
8
var keyValues={
  key1:{
  ----------
  },
  key2:{
  ----------
  }
}

如何查找键值的长度?好像我需要keyValues.length=2


有几种方法可以做到这一点。最简单的方法是使用Object.keys(文档):

1
console.log(Object.keys(keyValues).length);

这基本上等同于:

1
2
3
4
5
var count = 0;
for(var key in keyValues){
    if(keyValues.hasOwnProperty(key)) count++;
}
console.log(count):

注意,只计算属于对象本身的键,而不计算对象原型链上的键。如果您需要计算所有密钥(包括原型链中的密钥),只需省略上面对hasOwnProperty的调用:

1
2
3
4
5
var count = 0;
for(var key in keyValues){
    count++;
}
console.log('all keys, including prototype chain: ' + count):

请注意,这些方法不会计算未标记为可枚举的属性,这可能正是您想要的。如果你真的想要得到每一个最后的东西(包括那些标记为可枚举的东西),你就必须使用Object.getOwnPropertyNames()文档,自己浏览原型链。正如我所说,这可能不是您想要的:如果有人遇到麻烦使属性不可枚举,那是因为他们不希望枚举它。只是确保我的答案涵盖了所有的基础!


1
Object.keys(keyValues).length;


Object.keys(keyValues).length将起作用。但是,如果它也包括固有属性的话。要获得对象的属性,需要使用Object.hasOwnProperty(key)