最近有这样的一个需求,后端给我一个数据类型dataType,
brr 数组是返回的数据,id 对应数据的类型
我们需要生成这样的数据结构
将 brr 二维数组变成下图这样的数据结构
brr 数组
[[{ id: 3, name: '3' }, { id: 3, name: '3' }], [{ id: 1, name: '1' }, { id: 1, name: '1' }]]
目标结构类型
[[{ id: 1, name: '1' }, { id: 1, name: '1' }], [], [{ id: 3, name: '3' }, { id: 3, name: '3' }], [] ]
从结构类型的变化来说,我们将数组按类型依次排列起来了,没有出现的id ,变成空数组了。
我们渲染类型时,会将后端返回的数据,依次对应起来了。
全部代码
<script>
let dataType= [
{
type: 1,
name: '互联网'
}, {
type: 2,
name: '互联网'
}, {
type: 3,
name: '互联网'
}, {
type: 4,
name: '互联网'
}
]
let crr = []
let brr = [[{ id: 3, name: '3' }, { id: 3, name: '3' }], [{ id: 1, name: '1' }, { id: 1, name: '1' }]]
dataType.forEach((a, index) => {
brr.forEach((v, val) => {
if (v.every((d) => d.id === a.type)) {
crr[index] = v
}
})
if(!crr[index]) {
crr[index] = []
}
})
console.log(crr);
</script>