Object To Array (an Array Of Arrays)
I am trying to convert an object literal into an array of arrays by using a function. Using the two sample objects I have, the end result I'm looking for would be: [ ['ugh','grr']
Solution 1:
The problem with your code is you're using the return
earlier than needed, see this working code:
var obj1 = {
ugh: "grr",
foo: "Bar",
blah: 138
};
var obj2 = {
shambala: "walawala",
foofighter: "Barstool",
blahblah: 1382342453
};
function objToArray(objectLiteral) {
var piece1 = Object.keys(objectLiteral);
var piece2 = Object.values(objectLiteral);
var result = [];
for (var i = 0; i < piece1.length; i++) {
result.push([piece1[i], piece2[i]])
}
return result;
}
console.log(objToArray(obj1));
Solution 2:
If it's supported in your environment, you could use Object.entries
:
var obj1 = {
ugh: "grr",
foo: "Bar",
blah: 138
};
var pairs = Object.entries(obj1);
Alternatively, you could write an entries
function like this:
function entries(object) {
const pairs = [];
for(let key in object) {
if(object.hasOwnProperty(key)) {
pairs.push([key, object[key]]);
}
}
return pairs;
}
Solution 3:
Here's how I'd implement it.
function objectToArray(obj) {
return Object.keys(obj).map(function(prop) {
return [prop, obj[prop]];
});
}
// ES2015
function objectToArray (obj) {
return Object.keys(obj).map(prop => [prop, obj[prop]]);
}
Post a Comment for "Object To Array (an Array Of Arrays)"