我有一个变量如下:
var keyValues={
key1:{
----------
},
key2:{
----------
}
}
Run Code Online (Sandbox Code Playgroud)
如何找到keyValues的长度?像我需要的那样keyValues.length=2.
有几种方法可以做到这一点.最简单的是使用Object.keys(文档):
console.log(Object.keys(keyValues).length);
Run Code Online (Sandbox Code Playgroud)
这基本上相当于:
var count = 0;
for(var key in keyValues){
if(keyValues.hasOwnProperty(key)) count++;
}
console.log(count):
Run Code Online (Sandbox Code Playgroud)
请注意,只计算属于对象本身的键,而不是对象原型链上的键.如果您需要计算所有键(包括原型链中的键),只需省略对hasOwnProperty上面的调用:
var count = 0;
for(var key in keyValues){
count++;
}
console.log('all keys, including prototype chain: ' + count):
Run Code Online (Sandbox Code Playgroud)
请注意,这些方法不会计算未标记为可枚举的属性,这可能正是您想要的.如果你真的想要得到最后的东西(包括标记为可枚举的东西),你将不得不使用Object.getOwnPropertyNames()(文档)并自己走原型链.就像我说的,这可能不是你想要的:如果有人为了使一个属性不可枚举而麻烦,那是因为他们不想要枚举它.只是确保我的答案涵盖所有基础!
| 归档时间: |
|
| 查看次数: |
93 次 |
| 最近记录: |