Javascript 将数组的数组转换为对象的数组

Javascript 将数组的数组转换为对象的数组,javascript,Javascript,我有一个数组2d数组,我想把它转换成一个对象数组。在生成的数组中,我希望每个对象都有一个键名,请参见下面的预期输出 data = [ ['Apple', 'Orange', 'Banana', 'Pears', 'Peach'], [40, 35, 25, 58, 84], [2, 4, 4, 3, 1, 2], ['Red', 'Yellow', 'Green', 'Violet', 'Blue'] ]; 我的预期结果: expected_result = [ {name: 'A

我有一个数组2d数组,我想把它转换成一个对象数组。在生成的数组中,我希望每个对象都有一个键名,请参见下面的预期输出

data = [
 ['Apple', 'Orange', 'Banana', 'Pears', 'Peach'],
 [40, 35, 25, 58, 84],
 [2, 4, 4, 3, 1, 2],
 ['Red', 'Yellow', 'Green', 'Violet', 'Blue']
];
我的预期结果:

expected_result = [
  {name: 'Apple', price: 40, quantity: 2, color: 'Red'},
  {name: 'Orange', price: 35, quantity: 4, color: 'Yellow'},
  {name: 'Banana', price: 25, quantity: 4, color: 'Green'},
  {name: 'Pears', price: 58, quantity: 1, color: 'Violet'},
  {name: 'Peach', price: 84, quantity: 2, color: 'Blue'}
];

注意:数据中每个数组的迭代应该是连续的,以便给出预期的结果

似乎数量值中有一项额外的内容。我已经更新了 [2,4,4,3,1,2]到[2,4,4,1,2]删除了3以匹配结果,希望这是一个打字错误

让数据=[ [苹果、橘子、香蕉、梨、桃], [40, 35, 25, 58, 84], [2, 4, 4, 1, 2], [红、黄、绿、紫、蓝] ]; 让输出=[]; 让道具=[名称、价格、数量、颜色]; 函数updateInfo,prop{ row.filtervalue,索引=>{ 如果输出[索引]{ 输出[指数][prop]=数值; }否则{ 输出推送{ [道具]:价值 }; } }; }; data.filterrow,索引=>{ 更新信息行,道具[索引]; };
console.logoutput 一种解决方案是在outter数组索引和要分配给它们的属性或键名称之间创建第一个数组,但是这可以被这样的数组[name、price、quantity、color]替换。此外,您还可以获取内部数组的最小长度,以便稍后检查是否未创建不具有所有属性的对象。完成此预初始化后,可以使用生成预期结果:

expected_result = [
  {name: 'Apple', price: 40, quantity: 2, color: 'Red'},
  {name: 'Orange', price: 35, quantity: 4, color: 'Yellow'},
  {name: 'Banana', price: 25, quantity: 4, color: 'Green'},
  {name: 'Pears', price: 58, quantity: 1, color: 'Violet'},
  {name: 'Peach', price: 84, quantity: 2, color: 'Blue'}
];
常数数据=[ [‘苹果’、‘橘子’、‘香蕉’、‘梨’、‘桃子’], [40, 35, 25, 58, 84], [2, 4, 4, 3, 1, 2], [‘红色’、‘黄色’、‘绿色’、‘紫色’、‘蓝色’] ]; 让mapIdxToProp=新地图[[0,名称],[1,价格],[2,数量],[3,颜色]]; 让minLen=Math.min…data.mapx=>x.length; 设res=data.reduceac,arr,idx=> { arr.forEachx,j=> { j 设arr=[ [‘苹果’、‘橘子’、‘香蕉’、‘梨’、‘桃子’], [40, 35, 25, 58, 84], [2, 4, 4, 1, 2], [‘红色’、‘黄色’、‘绿色’、‘紫色’、‘蓝色’] ]; let keys=[名称、价格、数量、颜色]; 让输出=[]; //将的空白对象也添加到输出数组中 对于let i=0;iconsole.logoutput;嗨,阿鲁普,欢迎来到StackOverflow。这是一个调试网站,但你还没有给我们任何调试!请编辑您的问题以包含您的代码/尝试。哦,是的。。它的打字错误。。你明白我的问题了吗?迪帕克先生,你能解决这个问题吗?我已经在我的答案中添加了代码片段,请展开并检查它