Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to count JavaScript array objects?

When I have a JavaScript object like this:

var member = {
    "mother": {
        "name" : "Mary",
        "age" : "48"
    },
    "father": {
        "name" : "Bill",
        "age" : "50"
    },
    "brother": {
        "name" : "Alex",
        "age" : "28"
    }
}

How to count objects in this object?!
I mean how to get a counting result 3, because there're only 3 objects inside: mother, father, brother?!

If it's not an array, so how to convert it into JSON array?

like image 427
Nik Sumeiko Avatar asked Apr 22 '10 17:04

Nik Sumeiko


People also ask

How do you count the number of occurrences of an element in an array in JavaScript?

To count the occurrences of each element in an array:Declare a variable that stores an empty object. Use the for...of loop to iterate over the array. On each iteration, increment the count for the current element if it exists or initialize the count to 1 .


1 Answers

That's not an array, is an object literal, you should iterate over the own properties of the object and count them, e.g.:

function objectLength(obj) {
  var result = 0;
  for(var prop in obj) {
    if (obj.hasOwnProperty(prop)) {
    // or Object.prototype.hasOwnProperty.call(obj, prop)
      result++;
    }
  }
  return result;
}

objectLength(member); // for your example, 3

The hasOwnProperty method should be used to avoid iterating over inherited properties, e.g.

var obj = {};
typeof obj.toString; // "function"
obj.hasOwnProperty('toString'); // false, since it's inherited
like image 110
Christian C. Salvadó Avatar answered Sep 21 '22 08:09

Christian C. Salvadó