如何在Javascript变量中找到键的数量?

时间:2014-02-10 22:49:17

标签: javascript jquery

我有一个变量如下:

var keyValues={
  key1:{
  ----------
  },
  key2:{
  ----------
  }
}

如何找到keyValues的长度?就像我需要keyValues.length=2

3 个答案:

答案 0 :(得分:6)

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

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

这基本上相当于:

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

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

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

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

答案 1 :(得分:2)

Object.keys(keyValues).length;

答案 2 :(得分:0)

Object.keys(keyValues).length会奏效。但是,如果它也包含继承的属性。要获得对象的属性,您需要使用Object.hasOwnProperty(key)