Javascript 将数组的数组转换为对象的数组
我有一个数组2d数组,我想把它转换成一个对象数组。在生成的数组中,我希望每个对象都有一个键名,请参见下面的预期输出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
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