Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 比较两个数组并根据两个数组的索引添加新的键_Javascript_Arrays_Object - Fatal编程技术网

Javascript 比较两个数组并根据两个数组的索引添加新的键

Javascript 比较两个数组并根据两个数组的索引添加新的键,javascript,arrays,object,Javascript,Arrays,Object,我正在highcharts中创建一个sunburst图表,在数组中创建图层时遇到问题 例如,headers数组是第2层,数据数组是第3层 我需要将headername与数据中的组进行比较,并创建一个新数组,同时提供子id和父id 已将我当前的解决方案张贴在代码下方 const headers=[‘汽车’、‘水果’、‘食物’]; 常数数据=[{ 小组:"汽车",, 名称:"宝马",, 值:“25641” }, { 小组:"水果",, 名称:'苹果', 值:“45876” }, { 小组:"汽车"

我正在highcharts中创建一个sunburst图表,在数组中创建图层时遇到问题

例如,headers数组是第2层,数据数组是第3层

我需要将headername与数据中的组进行比较,并创建一个新数组,同时提供子id和父id

已将我当前的解决方案张贴在代码下方

const headers=[‘汽车’、‘水果’、‘食物’];
常数数据=[{
小组:"汽车",,
名称:"宝马",,
值:“25641”
}, {
小组:"水果",,
名称:'苹果',
值:“45876”
},
{
小组:"汽车",,
名称:‘奔驰’,
值:“65784”
},
{
小组:"汽车",,
名称:“丰田”,
值:“254”
},
{
小组:"食物",,
名称:'比萨饼',
值:“87535”
},
{
小组:"汽车",,
名称:‘本田’,
值:“65796”
},
{
小组:"水果",,
名称:'香蕉',
值:“98631”
},
{
小组:"水果",,
名称:“橙色”,
值:“87563”
},
{
小组:"食物",,
名字:“汉堡”,
值:“78324”
},
{
小组:"水果",,
名称:'芒果',
值:“24598”
}

]
您不需要嵌套映射-它将导致结果的嵌套数组。您只需要一个,因为
数据
和您的预期输出之间存在1:1的关系。您只需在数据上
map()
,然后在运行时查找父索引

const headers=[‘汽车’、‘水果’、‘食物’];
const data=[{group:'Cars',name:'BMW',value:'25641'},{group:'Fruits',name:'Apple',value:'45876'},{group:'Cars',name:'Benz',value:'65784'},{group:'Cars',name:'Toyota',value:'254'},{group:'Food',name:'Pizza',value:'87535'},{group:'Cars',name:'Honda:'65796'},{group:'Fruits',name:'香蕉',value:'98631'},{组:'Fruits',name:'Orange',value:'87563'},{组:'Food',name:'Burger',value:'78324'},{组:'Fruits',name:'Mango',value:'24598'}]
const newArray=data.map(函数(itemB,indexB){
让parentIndex=headers.indexOf(itemB.group)//只需找到父索引
返回{
id:`3.${indexB+1}`,
parentId:`2.${parentIndex+1}`,
值:itemB.value,
名称:itemB.name
}
})
console.log(newArray)