我正在创建一个函数,它将3维数组合并到一个对象数组中。通过3维数组迭代 - JS
例子:
var input = [[['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'}
]
我没有那么通过每个阵列迭代,然后得到第一个元素和最后一个元素,并把它的目标内。
但是我被困在两两件事:
- 它没有得到使用
myObj[employeeData[i][j][0]] = employeeData[i][j][k];
仅第二 阵列维数组中的所有项目。
这是在这种情况下,这一个:
[['firstName', 'Mary'], ['lastName', 'Jenkins'], ['age', 36], ['role', 'manager']]];
如果我推物体插入空数组我会得到以下:
姓名:“Mary”, 姓氏:“Jenkins”, 角色:“管理员” },[圆形对象对象],[圆形对象对象],[圆形对象对象],[圆形对象对象],[ ect],[圆形对象对象],[圆形对象对象],[圆形对象对象],[圆形对象对象],[圆形对象对象],[圆形对象对象],[圆形对象对象] [圆形对象的对象],[圆形对象的对象],[圆形对象的对象],[圆形对象的对象]]
不确定圆形对象的意思。
这里是我的代码至今:
function arrayObject(data) {
var arr = [];
var myObj = {};
for(var i = 0; i < data.length; i++){
for(var j = 0; j < data[i].length; j++){
for(var k = 0; k < data[i][j].length; k++){
myObj[data[i][j][0]] = data[i][j][k];
arr.push(myObj);
}
}
}
return arr;
}
var input = [[['firstName', 'Joe'], ['lastName', 'Blow'], ['age', 42], ['role', 'clerk']],
[['firstName', 'Mary'], ['lastName', 'Jenkins'], ['age', 36], ['role', 'manager']]];
var output = arrayObject(input);
console.log(output);
检查为什么具有MyObj中,在最高层只能选择第一套数组项下面 – Sletheren