Javascript获取对象中项目列表的长度?

问题描述 投票:5回答:4

我目前有一个看起来像这样的Javascript对象:

Object {0: 8, 1: 9, 2: 10}

我试图获取对象中的单个项目的数量(即3),但无法弄清楚如何这样做。由于对象不是数组,我不能只调用.length()。我尝试使用huntsList[2].toString().split('.').length将项目拆分为逗号并以这种方式计算它们但它返回1,因为它将整个对象转换为单个字符串,如下所示:["[object Object]"]

任何关于如何实现这一点的建议都表示赞赏。

javascript object content-length
4个回答
9
投票

您可以使用Object.keys获取密钥,Example返回密钥数组:

var obj = {0: 8, 1: 9, 2: 10}; var keys = Object.keys(obj); var len = keys.length

Object.keys()

6
投票

你可以使用var myObject = {0: 8, 1: 9, 2: 10}; console.log(Object.keys(myObject).length) 。它返回一个对象键的数组。

var obj = {
  0: 8,
  1: 9,
  2: 10
}
console.log(Object.keys(obj).length)

4
投票

1:ES5.1解决方案使用Object.keys - 返回给定对象自己的可枚举属性的数组

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);

2:Pre-ES5解决方案:使用for..in和hasOwn

console.log(_.toArray({
  0: 8,
  1: 9,
  2: 10
}).length)

3:库解决方案:使用lodash / underscore将其转换为数组,并查询其长度,如果您需要纯js解决方案,我们可以查看如何工作。

<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore.js"></script>
var obj = {0: 8, 1: 9, 2: 10};
alert(Object.keys(obj).length);

1
投票
qazxswpoi

使用此代码,尝试提醒您对象配合的长度。

© www.soinside.com 2019 - 2024. All rights reserved.