Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

List all variable names in a object [duplicate]

I have this object:

var sub = {
    0:  [""],
    21: ["Look, here, are three little stuff,","ready to sing for this crowd"],
    28: ["Listen up, 'cause here's our story","I'm gonna sing it very LOUUU..."],
    36: [""],
    45: ["VERY LOUUU..."],
    48: [""],
    61: ["When you're a younger stuff","and your stuff is very bare"],
    68: ["Feels like the sun will never come","when your stuff's not there"],
    74: ["So the three of us will fight the fight","there is nothing that we fear"],
    80: ["We'll have to figure out what we'll do next","till our stuff is here!"],
    87: ["We are the guys","on a quest to find out who we are"],
    94: ["And we will never stop the journey","not until we have our stuff"],
    101:[""],
    106:["(stuff...)"],
}
//I like stuff.

And I would like to get all of the variable names into an array, like so:

variables == [0, 21, 28, 36, 45, 48, 61, 68, 74, 80, 87, 94, 101, 106, 109];

Is there a built in function for this, or is it possible to iterate over JSON object variables?

like image 931
SeinopSys Avatar asked Jan 21 '26 20:01

SeinopSys


2 Answers

Most browsers have this method built right into the Object prototype.

You can use

var variables = Object.keys(sub); //returns an array with all the object keys

Hope that helps!

like image 143
KDV Avatar answered Jan 24 '26 09:01

KDV


var variables = [];
for (var i in sub) {
 if (sub.hasOwnProperty(i)){
  variables.push(+i);
 }
}

This is a manual solution. I recommend you using Underscore.js for problems like this. There is a good _.keys method in Underscore.

like image 29
Mohsen Avatar answered Jan 24 '26 11:01

Mohsen