use*_*348 9 javascript object content-length
我目前有一个看起来像这样的Javascript对象:
Object {0: 8, 1: 9, 2: 10}
我试图获取对象中的单个项目的数量(即3),但无法弄清楚如何这样做.由于对象不是数组,我不能只调用.length().我试图huntsList[2].toString().split('.').length用逗号分割项目并以这种方式计算它们但它返回1,因为它将整个对象转换为单个字符串,如下所示:["[object Object]"].
任何关于如何实现这一点的建议都表示赞赏.
Jor*_*rix 10
您可以使用键来获取键Object.keys,它返回键的数组:
var obj = {0: 8, 1: 9, 2: 10};
var keys = Object.keys(obj);
var len = keys.length
Run Code Online (Sandbox Code Playgroud)
你可以用Object.keys().它返回一个对象键的数组.
var myObject = {0: 8, 1: 9, 2: 10};
console.log(Object.keys(myObject).length)
Run Code Online (Sandbox Code Playgroud)
1:ES5.1解决方案使用Object.keys-返回给定对象自己的可枚举属性的数组
var obj = {
0: 8,
1: 9,
2: 10
}
console.log(Object.keys(obj).length)Run Code Online (Sandbox Code Playgroud)
2:ES5之前的解决方案:用于..in和hasOwn
var obj = {
0: 8,
1: 9,
2: 10
};
var propsLength = 0;
for (prop in obj) {
if (obj.hasOwnProperty(prop)) {
propsLength = propsLength + 1;
}
}
console.log(propsLength);Run Code Online (Sandbox Code Playgroud)
3:库解决方案:使用lodash / underscore将其转换为数组,并查询其长度,如果您需要纯js解决方案,我们可以研究toArray的工作方式。
console.log(_.toArray({
0: 8,
1: 9,
2: 10
}).length)Run Code Online (Sandbox Code Playgroud)
<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore.js"></script>Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
22422 次 |
| 最近记录: |