user3802348
user3802348

Reputation: 2592

Javascript Get length of list of items in object?

I currently have a Javascript object that looks like this:

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

I am trying to get the number of individual items in the object (i.e. 3) but can't figure out how to do so. Since the object isn't an array, I can't just call .length(). I tried huntsList[2].toString().split('.').length to split the items at the commas and count them in this way but it returns 1, since it converts the entire object to a single string that looks like this: ["[object Object]"].

Any suggestions for how I can accomplish this are appreciated.

Upvotes: 15

Views: 44643

Answers (4)

TMB
TMB

Reputation: 4703

1: ES5.1 solution use Object.keys - returns an array of a given object's own enumerable properties

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

2: Pre-ES5 Solution: use for..in and 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);

3: Library Solution: Use lodash/underscore Convert it to an array, and query its length, if you need a pure js solution, we can look into how toArray works.

console.log(_.toArray({
  0: 8,
  1: 9,
  2: 10
}).length)
<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore.js"></script>

Upvotes: 5

sudhakar phad
sudhakar phad

Reputation: 191

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

with this code, try to alert the length of you object mate.!

Upvotes: 1

dork
dork

Reputation: 4568

You can use Object.keys(). It returns an array of the keys of an object.

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

Upvotes: 7

omarjmh
omarjmh

Reputation: 13888

You could get the keys using Object.keys, which returns an array of the keys:

Example

var obj = {0: 8, 1: 9, 2: 10};

var keys = Object.keys(obj);

var len = keys.length

Upvotes: 15

Related Questions