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

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条回答 默认 最新

  • 等风来20200202 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 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
  • ¥50 如何openEuler 22.03上安装配置drbd
  • ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
  • ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)
  • ¥15 Windows11, backspace, enter, space键失灵