我正在研究将数组转换为对象的算法。当最后一个变换对象覆盖数组中的前一个对象时。将对象覆盖时将其添加到循环内的数组中
这是我的代码:
let array = [
[
['firstName', 'Joe'], ['lastName', 'Blow'], ['age', 42], ['role', 'clerk']
],
[
['firstName', 'Mary'], ['lastName', 'Jenkins'], ['age', 36], ['role', 'manager']
]
];
function transformEmployeeData(array) {
let obj = {};
for(let i in array) {
for(let j in array[i]) {
obj[array[i][j][0]] = array[i][j][1];
}
array.splice(i,1,obj);
}
return array;
}
let run = transformEmployeeData(array);
我希望得到这样的结果作为输出:
[
{firstName: "Joe", lastName: "Blow", age: 42, role: "clerk"}
{firstName: "Mary", lastName: "Jenkins", age: 36, role: "manager"}
];
而不是得到这个
[
{firstName: "Mary", lastName: "Jenkins", age: 36, role: "manager"},
{firstName: "Mary", lastName: "Jenkins", age: 36, role: "manager"}
];
当我登录了该obj,我得到了预期的结果。当我将它添加到数组中时,它只是覆盖以前的结果。
见欺骗目标。你只需要将方法嵌套到一个层次上,因为你需要一个对象数组。 – Cerbrus