阐述一下产品需求,后端返回的是一个二维数组,需要根据二维数组里的相同下标去重组新数组,同事用他的方式处理了一下,我趁着有空也试了下,本来想用es6的语法看看能不能处理,结果还是趋向于原生,如果大家有好的写法,更精简的写法也可以分享出来。
后端返回的数据如下
代码如下(示例):
data: {
area: [{
area_name: '长沙市',
value: [0,0,0,266]
}, {
area_name: '邵阳市',
value: [0,9,0,266]
}, {
area_name: '吉首市',
value: [0,2,5,266]
}
]
energy_type: ['项目1', '项目2', '项目3', '项目4']
}
我的处理是直接拉平成一维数组,然后处理里面的value这个数组,通过下标重组
代码如下(示例):
let obj = data.area.flat()
let obj1 = {}
let obj2 = obj.map(item => item.area_name)
// obj2保存的是需要用到的地名
obj.forEach(item => {
item.value.forEach((ele, index) => {
if(obj1[index]) {
obj1[index].push(ele)
} else {
obj1[index] = [ele]
}
})
})
总结
最后还是用了forEach,其实map也可以
欢迎大家有啥好的写法可以发评论区一起学习下