【发布时间】:2018-05-20 18:56:53
【问题描述】:
我想将一组嵌套数组转换为一个对象数组,其中包含从嵌套数组中收集的信息:
之前:
var employeeData = [
[
['firstName', 'Bob'], ['lastName', 'Lob'], ['age', 22], ['role', 'salesperson']
],
[
['firstName', 'Mary'], ['lastName', 'Joe'], ['age', 32], ['role', 'director']
]
]
之后:
[
{firstName: 'Bob', lastName: 'Lob', age: 22, role: 'salesperson'},
{firstName: 'Mary', lastName: 'Joe', age: 32, role: 'director'}
]
这是我为解决这个问题而编写的函数,但我不太清楚循环出错的地方:
var employeeData = [
[
['firstName', 'Bob'], ['lastName', 'Lob'], ['age', 22], ['role', 'salesperson']
],
[
['firstName', 'Mary'], ['lastName', 'Joe'], ['age', 32], ['role', 'director']
]
]
function transformData(employeeData) {
let newObject = {};
let newArr = [];
for (var i = 0; i < employeeData.length; i++) {
for (var x = 0; x < employeeData[i].length; x++) {
for (var y = 0; y < employeeData[i][y].length; y++) {
newObject[employeeData[i][y][0]] = employeeData[i][y][1];
}
}
newArr.push(newObject);
newObject = {};
}
return newArr;
}
console.log(transformData(employeeData));
提前致谢。
【问题讨论】:
-
"我看不出循环哪里出错了" 我也不能,因为我不知道你的代码产生了什么。你能举例说明你的输出现在是什么样子吗?
-
我注意到你从不使用变量 x
-
正如您在编辑问题以包含代码 sn-p 后看到的那样,代码确实有效,您只需使用前两个数组元素,需要扩展它以包含所有数据.
标签: javascript arrays loops multidimensional-array nested-loops