You have done almost well, but the parent should be array of objects, which makes sense.
var array = [
[
['name', 'John Smith'],
['age', 34],
['occupation', 'nurse']
],
[
['name', 'Nico Klein'],
['age', 24],
['occupation', 'engineer']
]
];
function toObject(arr) {
var obj = [];
for (var j = 0; j < arr.length; j++) {
var cur = {};
for (var i = 0; i < arr[j].length; i++) {
cur[arr[j][i][0]] = arr[j][i][1];
}
obj.push(cur);
}
return obj;
}
var result = toObject(array);
console.log(result);
The output will be in the order of:
[
{
"name": "John Smith",
"age": 34,
"occupation": "nurse"
},
{
"name": "Nico Klein",
"age": 24,
"occupation": "engineer"
}
]
And it has all the records from the original array. If you still want to convert the resultant array into an object, look at Convert Array to Object.
var array = [
[
['name', 'John Smith'],
['age', 34],
['occupation', 'nurse']
],
[
['name', 'Nico Klein'],
['age', 24],
['occupation', 'engineer']
]
];
function toObject(arr) {
var obj = [];
for (var j = 0; j < arr.length; j++) {
var cur = {};
for (var i = 0; i < arr[j].length; i++) {
cur[arr[j][i][0]] = arr[j][i][1];
}
obj.push(cur);
}
return obj;
}
var result = toObject(array);
var resObj = result.reduce(function(acc, cur, i) {
acc[i] = cur;
return acc;
}, {});
console.log(resObj);
The final Object output will give you:
{
"0": {
"name": "John Smith",
"age": 34,
"occupation": "nurse"
},
"1": {
"name": "Nico Klein",
"age": 24,
"occupation": "engineer"
}
}