var eData = [
[
['firstName', 'Joe'],
['lastName', 'Blow'],
['age', 42],
['role', 'clerk']
],
[
['firstName', 'Mary'],
['lastName', 'Jenkins'],
['age', 36],
['role', 'manager']
]
];
var employees = [];
var person = {};
function transformEmployeeData(employeeData){
for(i=0; i < employeeData.length; i++){
for(j=0; j < employeeData[i].length; j++){
var key = employeeData[i][j][0];
var value = employeeData[i][j][1];
person[key] = value;
employees[i] = person;
}
}
return employees;
}
console.log(transformEmployeeData(eData));
Returns the following:
[ { firstName: 'Mary',
lastName: 'Jenkins',
age: 36,
role: 'manager' },
{ firstName: 'Mary',
lastName: 'Jenkins',
age: 36,
role: 'manager' } ]
Why is Mary employees[0] and employees[1]?
Declaring the person object inside the first for loop fixes the problem. But why?
Why does putting the person object inside the second for loop:
function transformEmployeeData(employeeData){
for(i=0; i < employeeData.length; i++){
for(j=0; j < employeeData[i].length; j++){
var person = {};
var key = employeeData[i][j][0];
var value = employeeData[i][j][1];
person[key] = value;
employees[i] = person;
}
}
return employees;
}
Return only the following?
[ { role: 'clerk' }, { role: 'manager' } ]