Javascript 如何将嵌套数组对转换为数组中的对象
我的任务是将以下数组转换为对象对数组:Javascript 如何将嵌套数组对转换为数组中的对象,javascript,arrays,object,Javascript,Arrays,Object,我的任务是将以下数组转换为对象对数组: var arr = [ [ ['firstName', 'Joe'], ['lastName', 'Blow'], ['age', 42], ['role', 'clerk'], [ ['firstName', 'Mary'], ['lastName', 'Jenkins'], ['age', 36], ['role', 'manager'] ] ] ]
var arr = [
[
['firstName', 'Joe'],
['lastName', 'Blow'],
['age', 42],
['role', 'clerk'],
[
['firstName', 'Mary'],
['lastName', 'Jenkins'],
['age', 36],
['role', 'manager']
]
]
]
我需要将arr
转换为如下所示的对象数组:
[
{firstName: 'Joe', lastName: 'Blow', age: 42, role: 'clerk'},
{firstName: 'Mary', lastName: 'Jenkins', age: 36, role: 'manager'}
]
如果格式化代码,首先会看到末尾缺少一个右大括号']'。你的结构是这样的
var arr = [
[
['firstName', 'Joe'],
['lastName', 'Blow'],
['age', 42],
['role', 'clerk'],
[
['firstName', 'Mary'],
['lastName', 'Jenkins'],
['age', 36],
['role', 'manager']
]
]
]
var arr = [
[
['firstName', 'Joe'],
['lastName', 'Blow'],
['age', 42],
['role', 'clerk']
],
[
['firstName', 'Mary'],
['lastName', 'Jenkins'],
['age', 36],
['role', 'manager']
]
];
var arr = [
{
'firstName': 'Joe',
'lastName': 'Blow',
'age': 42,
'role': 'clerk'
},
{
'firstName': 'Mary',
'lastName': 'Jenkins',
'age': 36,
'role': 'manager'
}
];
我想你想做这样的事
var arr = [
[
['firstName', 'Joe'],
['lastName', 'Blow'],
['age', 42],
['role', 'clerk'],
[
['firstName', 'Mary'],
['lastName', 'Jenkins'],
['age', 36],
['role', 'manager']
]
]
]
var arr = [
[
['firstName', 'Joe'],
['lastName', 'Blow'],
['age', 42],
['role', 'clerk']
],
[
['firstName', 'Mary'],
['lastName', 'Jenkins'],
['age', 36],
['role', 'manager']
]
];
var arr = [
{
'firstName': 'Joe',
'lastName': 'Blow',
'age': 42,
'role': 'clerk'
},
{
'firstName': 'Mary',
'lastName': 'Jenkins',
'age': 36,
'role': 'manager'
}
];
但我建议你这样做
var arr = [
[
['firstName', 'Joe'],
['lastName', 'Blow'],
['age', 42],
['role', 'clerk'],
[
['firstName', 'Mary'],
['lastName', 'Jenkins'],
['age', 36],
['role', 'manager']
]
]
]
var arr = [
[
['firstName', 'Joe'],
['lastName', 'Blow'],
['age', 42],
['role', 'clerk']
],
[
['firstName', 'Mary'],
['lastName', 'Jenkins'],
['age', 36],
['role', 'manager']
]
];
var arr = [
{
'firstName': 'Joe',
'lastName': 'Blow',
'age': 42,
'role': 'clerk'
},
{
'firstName': 'Mary',
'lastName': 'Jenkins',
'age': 36,
'role': 'manager'
}
];
你可以这样转换它-
var arr = [
{'firstName':'Joe','lastName':'Blow','age':42,'role':'clert'},
{'firstName':'Mary','lastName':'Jenkins','age':36,'role':'manager'}
]
对象数组的示例
var arr = [
{
'firstName' : 'Joe',
'lastName' : 'Blow',
'age' : 42,
'role' : 'clerk'
},
{
'firstName' : 'Mary',
'lastName' : 'Jenkins',
'age' : 36,
'role' : 'manager'
}
];
编程解决方案(也可从以下网址获得):
可以对嵌套数组使用迭代和递归方法
var数组=[[['firstName','Joe'],['lastName','Blow'],['age',42],'role','clerk'],[['firstName','Mary'],['lastName','Jenkins'],['age',36],'role','manager']],
结果=[];
数组[0]。forEach(函数iter(a,i){
i | | result.push({});
if(i<4){
结果[result.length-1][a[0]]=a[1];
回来
}
国际热核实验堆(iter);
});
控制台日志(结果)代码>
。作为控制台包装{最大高度:100%!重要;顶部:0;}
- 使用map函数选择每个“person”数组
- 使用reduce函数将每个“person”数组转换为一个对象
- map函数还将返回一个新的对象数组
- 原始数组将不会被更改
请说出你所做的努力和想要的输出输出格式是什么?你想要这样-var arr=[{'firstName':'Joe','lastName':'Blow','age':42,'role':'clert'},{'firstName':'Mary','lastName':'Jenkins','age':36,'role':'manager'}提到你尝试过的,想要的输出是什么。另外,格式化问题,添加代码块。arr缺少一个“]”请投反对票删除评论。所以我可以得到我不知道的嵌入片段的地方,谢谢你的回复。然而,我认为您的解决方案受到属性数(四)的限制,但这缺乏弹性,我的意思是,如果I==2,那么它就是一个名称/值元组,看起来前四个元素应该是对象的一部分。这就是我能想到的。它确实有效,但我不认为它是最有效的解决方案。如果你提供比上面更多的数据,我可以优化提案。