0

I am having troubles getting key values in a block of code similar to the following:

var someArray = [];
someArray.push(objX, objY, objZ); //each of these objects pushed in have 1 key/value pair
for (var i = 0; i < someArray.length; i++) {
 switch (Object.keys(someArray[i][0])) { //Not sure that "[i][0]" is valid?
 //now set tags using Jquery
 }
}

So in the above code example I am passing in an array of objects (each object is a single key/value pair). And want to get the key of each of these so I can set the HTML tag that corresponds to each using Jquery.

Thought: just the [i] will be sufficient since the array of each object's keys will only every be 1?

Any help is appreciated!!

asked Sep 22, 2016 at 13:58
0

2 Answers 2

3

If each object will definitely have only one enumerable property, then you can use Object.keys(someArray[i])[0] to get that property's name in your loop. Object.keys returns an array of the object's own, enumerable property names, and [0] gets the first entry from it. (And of course, someArray[i][theName] will give you the value of that property.)

Example:

var objX = {
 x: "ecks"
};
var objY = {
 y: "why"
};
var objZ = {
 z: "zee"
};
var someArray = [];
someArray.push(objX, objY, objZ);
for (var i = 0; i < someArray.length; i++) {
 var arrayEntry = someArray[i];
 var name = Object.keys(arrayEntry)[0];
 console.log(name + " is " + arrayEntry[name]);
}

answered Sep 22, 2016 at 14:01
Sign up to request clarification or add additional context in comments.

2 Comments

I was definitely overthinking this problem... This works, thank you very much!!
@codeglove26: Object.keys(someArray[i][0]) was so close. :-)
1

Use the objects in the array as real objects.

var objX = {key: 'one', value: 'oneValue'};
var objY = {key: 'two', value: 'twoValue'};
var objZ = {key: 'three', value: 'threeValue'};
var someArray = [];
someArray.push(objX, objY, objZ); //each of these objects pushed in have 1 key/value pair
for (var i = 0; i < someArray.length; i++) {
 var obj = someArray[i];
 var key = obj.key;
 var value = obj.value;
}
answered Sep 22, 2016 at 14:05

Comments

Your Answer

Draft saved
Draft discarded

Sign up or log in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

Post as a guest

Required, but never shown

By clicking "Post Your Answer", you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.