如
const data = [ { data: [ { name: '计检xx', value: 1 }, { name: '暂检xx', value: 2 } ], name: '1号名称' }, { data: [ { name: '暂检xx', value: 520 } ], name: '2号名称' }, { data: [ { name: '计检xx', value: 66 }, { name: '暂检xx', value: 77 } ], name: '3号名称' } ]
补短之后
const data = [ { data: [ { name: '计检xx', value: 1 }, { name: '暂检xx', value: 2 } ], name: '1号名称' }, { data: [ { name: '计检xx', value: 0 }, { name: '暂检xx', value: 520 } ], name: '2号名称' }, { data: [ { name: '计检xx', value: 66 }, { name: '暂检xx', value: 77 } ], name: '3号名称' } ]
const seriesNameArr: any = []
let max = data.reduce((prev: { data: string | any[] }, next: { data: string | any[] }) => {
return prev.data.length > next.data.length ? prev : next
})
data.forEach((item: any) => {
if (item.data.length < max.data.length) {
const result = max.data
.filter((i: { name: any }) => !item.data.find((j: { name: any }) => j.name === i.name))
.concat([item].filter(i => ![item].find(j => j.name === i.name)))
.map((d: any) => {
return {
...d,
value: 0
}
})
item.data = [...item.data, ...result]
}
item.data.forEach((chiData: any) => {
seriesNameArr.push(chiData.name)
})
})
书写不易,支持一下吧!