I have been trying to convert this data:
var myArray = [
[1,2,3,4],
["1","2","3","4"],
["a", "b", "c", "d"]
]
to this:
var result = [
{
"num": 1,
"str": "1",
"let": "a"
},
{
"num": 2,
"str": "2",
"let": "b"
},
{
"num": 3,
"str": "3",
"let": "c"
},
{
"num": 4,
"str": "4",
"let": "d"
}
]
Any assistance will be extremely helpful. I have tried various iterations but none of them yield what I am hoping for.
I am trying to use this:
objectified_data = array_data.map(function(x) {
return {
"num": x[0],
"str": x[1],
"let": x[2]
}
})
But I cannot figure out how to make the homogenous set of array, heterogenous for this to work. Ultimately, I am trying to filter out certain keys, so the original data as it was is not working for that task
CodePudding user response:
You can achieve this with a simple for
var myArray = [
[1, 2, 3, 4],
["1", "2", "3", "4"],
["a", "b", "c", "d"]
]
const json = [];
for (let i = 0; i < myArray[0].length; i ) {
json.push({
num: myArray[0][i],
let: myArray[1][i],
str: myArray[2][i],
});
}
console.log(json);
CodePudding user response:
Try this
var myArray = [[1,2,3,4],["1","2","3","4"],["a", "b", "c", "d"]];
let result = myArray[0].map((v, i) => ({
"num": myArray[0][i],
"let": myArray[1][i],
"str": myArray[2][i]
}))
console.log(result)
CodePudding user response:
Just a basic solution. You would want i
to be dynamic I believe ? In that case you can just check the first nested array's size and use that as i
.
let x = 0;
let y = 1;
let z = 2;
let json = [];
for(let i=0; i<4;i ){
let item = {};
item = {
["num"]: myArray[x][i],
["let"]: myArray[y][i],
["str"]: myArray[z][i]
}
result.push(item);
}