项目中遇到的关于映射二维数组的方法

最近有这样的一个需求,后端给我一个数据类型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>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值