我正在处理一个与将数组转换为对象相关的任务,但我有些束手无策。我们从一个包含两个额外嵌套数组的数组开始,每个嵌套数组都包含多个数组(每个数组由两个值组成)。
任务是将所有这些内容转换为一个数组,其中包含多个对象。在每个对象内部,将有一系列键/值对,等于最小给定数组中的两个值。
例如:
参数将像这样:
鉴于输入的内容,返回值应如下所示:
任务是将所有这些内容转换为一个数组,其中包含多个对象。在每个对象内部,将有一系列键/值对,等于最小给定数组中的两个值。
例如:
参数将像这样:
[
[['firstName', 'Joe'], ['lastName', 'Blow'], ['age', 42], ['role', 'clerk']],
[['firstName', 'Mary'], ['lastName', 'Jenkins'], ['age', 36], ['role', 'manager']]
]
鉴于输入的内容,返回值应如下所示:
[{firstName: 'Joe', lastName: 'Blow', age: 42, role: 'clerk'}, {firstName: 'Mary', lastName: 'Jenkins', age: 36, role: 'manager'}]
使用调试器,我已经确定我的代码正确地将键/值对分配给了返回语句中的第一个对象。然而,当循环继续时,它不是创建一个新的嵌套对象,而是替换第一个对象中的键/值对,因此我最终只得到一个包含来自最终评估的正确键值对的对象。
这是我目前的代码:
function transformEmployeeData(employeeData) {
var obj = {}, arr = []
for (var i = 0; i < employeeData.length; i ++) {
for (var j = 0; j < employeeData[i].length; j ++) {
var key = employeeData[i][j][0];
var value = employeeData[i][j][1];
obj[key] = value;
}
arr.push(obj);
}
return arr;
}
这个问题让我的思维有些混乱...任何建议都将不胜感激!!!