javascript对象解析和创建新的对象数组

javascript对象解析和创建新的对象数组,javascript,arrays,Javascript,Arrays,我有以下目标 { itemName: [ 'hard drive', 'fafa' ], itemValue: [ '383.00', '565' ], itemQuantity: [ '61626', '65' ], } 如何将其转换为下面的对象数组 { items: [ {itemName : 'hard drive', itemValue : '383.00', itemQuantity : '61626'},

我有以下目标

{
  itemName: [ 'hard drive', 'fafa' ],
  itemValue: [ '383.00', '565' ],
  itemQuantity: [ '61626', '65' ],
}
如何将其转换为下面的对象数组

    {
        items: [
            {itemName : 'hard drive', itemValue : '383.00', itemQuantity : '61626'},
            {itemName : 'fafa', itemValue : '565', itemQuantity : '65'},
        ]
    }
使用从对象获取键/值对(条目)。使用重复输入项。在reduce中,使用迭代
,并检查当前索引(
索引
)中的结果数组(
结果
)中是否存在对象,如果不存在,则添加一个空对象。将当前键(
)和当前值(
)添加到对象

const数据={
项目名称:[“硬盘驱动器”、“fafa”],
itemValue:['383.00','565'],
项目数量:['61626','65'],
};
const result=Object.entries(数据)
.reduce((结果,[键,值])=>{
值。forEach((值,索引)=>{
如果(!result[index])result[index]={};
结果[索引][键]=值;
});
返回结果;
}, []);
log({items:result})使用从对象获取键/值对(条目)。使用重复输入项。在reduce中,使用迭代
,并检查当前索引(
索引
)中的结果数组(
结果
)中是否存在对象,如果不存在,则添加一个空对象。将当前键(
)和当前值(
)添加到对象

const数据={
项目名称:[“硬盘驱动器”、“fafa”],
itemValue:['383.00','565'],
项目数量:['61626','65'],
};
const result=Object.entries(数据)
.reduce((结果,[键,值])=>{
值。forEach((值,索引)=>{
如果(!result[index])result[index]={};
结果[索引][键]=值;
});
返回结果;
}, []);

log({items:result})您可以简单地在其上循环,以获得直接的解决方案:

const对象={
项目名称:[“硬盘驱动器”、“fafa”],
itemValue:['383.00','565'],
项目数量:['61626','65'],
};
常量项=[];
for(设i=0;i控制台日志(项目)您可以简单地在其上循环,以获得直接的解决方案:

const对象={
项目名称:[“硬盘驱动器”、“fafa”],
itemValue:['383.00','565'],
项目数量:['61626','65'],
};
常量项=[];
for(设i=0;i
控制台日志(项目)
你的意思是进入JSON对象?@Gilles Antoineys-不,进入javascript对象。JSON是数据的字符串表示,可以表示数组、对象、集合等……StackOverflow不是免费的编码服务。所以我希望你能。请更新您的问题,以显示您已在某个应用程序中尝试过的内容。有关更多信息,请参阅,并将:)您的意思转换为JSON对象?@Gilles Antoineys-不,转换为javascript对象。JSON是数据的字符串表示,可以表示数组、对象、集合等……StackOverflow不是免费的编码服务。所以我希望你能。请更新您的问题,以显示您已在某个应用程序中尝试过的内容。有关更多信息,请参阅,并以:)这是我最初的想法,但如果有多个项目具有相同的名称,该怎么办?您的意思是,例如,如果数组
itemName
包含
['hard drive','foo','hard drive','hard drive']
?你在任何方面都需要独特性吗?或者你能举个例子吗?我只是在这里复习,我不是问这个问题的人。。。。但我认为这是一个有效的问题……这是我最初的想法,但是如果有多个项目具有相同的名称呢?你的意思是,例如,如果数组
itemName
包含
['hard drive','foo','hard drive','hard drive']
?你在任何方面都需要独特性吗?或者你能举个例子吗?我只是在这里复习,我不是问这个问题的人。。。。但这是一个正确的问题,我认为……投票结果是正确的,但我认为值得注意的是,这需要ES6,它不一定总是可用的(呃哼,IE11)@cale_b可能是OP使用服务器端JS,而浏览器不是问题:)同样——可能是,但值得注意的是,在使用ES6的anwer中,这是一个ES6唯一的答案。也许OP不知道什么是兼容的/不兼容的。(也许这就是OP在这里提问的原因?@cale_b不管怎样,这取决于Ori。这是他的职位,但对我来说,这个解决方案很好。@cale_b-我同意。这就是为什么我添加链接到我使用的所有东西。由于链接指向MDN,因此在每篇文章的底部可以找到浏览器兼容性表。我并不是说它是ES6,因为它不是ES6(
Object.entries()
是ES2017),而今天有了Transpiler和浏览器支持,它真的很模糊。投票赞成,但我认为值得注意的是,这需要ES6,它不一定总是可用的(嗯哼,IE11)@cale_b可能是OP使用服务器端JS,而浏览器不是问题:)同样——可能是,但值得注意的是,在使用ES6的anwer中,这是一个ES6唯一的答案。也许OP不知道什么是兼容的/不兼容的。(也许这就是OP在这里提问的原因?@cale_b不管怎样,这取决于Ori。这是他的职位,但对我来说,这个解决方案很好。@cale_b-我同意。这就是为什么我添加链接到我使用的所有东西。由于链接指向MDN,因此在每篇文章的底部可以找到浏览器兼容性表。我并不是说它是ES6,因为它不是ES6(
Object.entries()
是ES2017),而今天有了transpilers和浏览器支持,它真的很模糊。