As in, the number of keys.
function objectSize(the_object) {
/* function to validate the existence of each key in the object to get the number of valid keys. */
var object_size = 0;
for (key in the_object){
if (the_object.hasOwnProperty(key)) {
object_size++;
}
}
return object_size;
}
Usage
// Arbitrary object
var something = {
dog: "cat",
cat: "dog"
}
console.log(objectSize(something));
// Logs: 2
Be sure to add var in front of key in your loop:
for (var key in the_object){
so the variable key goes out of scope with the function.
Just ran across this post while debugging code for IE. IE versions before 9 seem to have a problem with Object.keys and .hasOwnProperty used directly on an object. So a more sophisticated replacement is necessary, which can be found here:
http://whattheheadsaid.com/2010/10/a-safer-object-keys-compatibility-implementation
Hope this helps.
I like this Chris, but it seems more correct to add it to the Object prototype. IE
Object.prototype.size = function() {
var size = 0
// your code, but using "this"
return size;
}
Called with something.size()
From what I understand, adding a new function to the object prototype should not be a problem.
Hey Sam, could you write out your suggestion? I’m a bit confused by this.
Thanks for the help.