escapeCn 2020-12-30 12:40 采纳率: 66.7%
浏览 1610
已采纳

js将一个数组对象中包含两个相同的key属性,整理成为一个新的数组


const list = [
    {
        no:'202012300001',
        exno:'yt',
        name:'订单1'
    },
    {
        no:'202012300001',
        exno:'yt',
        name:'订单2'
    },
    {
        no:'202012300002',
        exno:'yt',
        name:'订单3'
    },
    {
        no:'202012300002',
        exno:'yt',
        name:'订单4'
    }
];

//需要整理成为
const list = [
{
        name:'yt',
        no:'202012300001',
        list:[
            {
                name:'订单1'
            },
            {
                name:'订单2'
            }
        ],
    },
    {
        name:'yt',
        no:'202012300002',
        list:[
            {
                name:'订单4'
            },
            {
                name:'订单3'
            }
        ],
    }
];

这要怎么处理呢?求大神指点

  • 写回答

4条回答 默认 最新

  • 波塞冬的祝福 2020-12-30 13:43
    关注
     arr = [
            {
                no: '202012300001',
                exno: 'yt',
                name: '订单1'
            },
            {
                no: '202012300001',
                exno: 'yt',
                name: '订单2'
            },
            {
                no: '202012300002',
                exno: 'yt',
                name: '订单3'
            },
            {
                no: '202012300002',
                exno: 'yt',
                name: '订单4'
            }
        ];
        let newArr = []
        arr.forEach(({ no, exno }) => {
            if (newArr.filter((res) => { return res.no == no && res.exno == exno }).length == 0) {
                newArr.push({ no, exno, list: [] })
            }
        })
        newArr.forEach((item) => {
            let names = arr.filter((res) => { return res.no == item.no && res.exno == item.exno });
            names.forEach((res) => {
                item.list.push(res.name)
    
            })
        })
        console.log(newArr)
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 Workbench中材料库无法更新,如何解决?
  • ¥20 如何推断此服务器配置
  • ¥15 关于github的项目怎么在pycharm上面运行
  • ¥15 内存地址视频流转RTMP
  • ¥100 有偿,谁有移远的EC200S固件和最新的Qflsh工具。
  • ¥15 有没有整苹果智能分拣线上图像数据
  • ¥20 有没有人会这个东西的
  • ¥15 cfx考虑调整“enforce system memory limit”参数的设置
  • ¥30 航迹分离,航迹增强,误差分析
  • ¥15 Chrome Manifest扩展引用Ajax-hook库拦截请求失败