marlsun 2022-10-29 22:35 采纳率: 84.2%
浏览 74
已结题

对象数组的转置与去重


const arr = [
  {chr: 'A', nanjing: 'a', beijing: 'b', shanghai: 'c'},
  {chr: 'B', nanjing: 'b', beijing: 'c', shanghai: 'c'},
  {chr: 'C', nanjing: 'b', beijing: 'd', shanghai: 'e'},
  {chr: 'D', nanjing: 'c', beijing: 'd', shanghai: 'a'},
  {chr: 'E', nanjing: 'e', beijing: 'e', shanghai: 'a'},
  {chr: 'F', nanjing: 'a', beijing: 'c', shanghai: 'e'},
  {chr: 'G', nanjing: 'e', beijing: 'a', shanghai: 'b'},
  {chr: 'H', nanjing: 'f', beijing: 'e', shanghai: 'd'}
]

const nanjing = [
  {type:"a",chr:"A,F"},
  {type:"b",chr:"B,C"},
  {type:"c",chr:"D"},
  {type:"e",chr:"E,G"},
  {type:"f",chr:"H"}
]

const beijing =[...]
const shanghai =[...]

如何能从arr中筛选出像 nanjing这样的数组。
请指教,谢谢!

  • 写回答

4条回答 默认 最新

  • 游一游走一走 2022-10-30 08:37
    关注
    const arr = [
        {chr: 'A', nanjing: 'a', beijing: 'b', shanghai: 'c'},
        {chr: 'B', nanjing: 'b', beijing: 'c', shanghai: 'c'},
        {chr: 'C', nanjing: 'b', beijing: 'd', shanghai: 'e'},
        {chr: 'D', nanjing: 'c', beijing: 'd', shanghai: 'a'},
        {chr: 'E', nanjing: 'e', beijing: 'e', shanghai: 'a'},
        {chr: 'F', nanjing: 'a', beijing: 'c', shanghai: 'e'},
        {chr: 'G', nanjing: 'e', beijing: 'a', shanghai: 'b'},
        {chr: 'H', nanjing: 'f', beijing: 'e', shanghai: 'd'}
    ]
    
    let data = Object.keys(arr[0]).filter(item => item != 'chr')
        .reduce((total, item) => {
            let resultMap = arr.reduce((total2, item2) => {
                let total2Element = total2[item2[item]];
                if (!total2Element) {
                    total2[item2[item]] = []
                }
                total2[item2[item]].push(item2.chr)
                return total2
            }, {});
            let result = Object.keys(resultMap).reduce((total2, item2) => {
                total2.push({type: item2, chr: resultMap[item2].join(',')})
                return total2
            }, []);
            total[item] = result
            return total
        }, {});
    
    console.log(data)
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 11月7日
  • 已采纳回答 10月30日
  • 创建了问题 10月29日

悬赏问题

  • ¥15 组策略中的计算机配置策略无法下发
  • ¥15 如何绘制动力学系统的相图
  • ¥15 对接wps接口实现获取元数据
  • ¥20 给自己本科IT专业毕业的妹m找个实习工作
  • ¥15 用友U8:向一个无法连接的网络尝试了一个套接字操作,如何解决?
  • ¥30 我的代码按理说完成了模型的搭建、训练、验证测试等工作(标签-网络|关键词-变化检测)
  • ¥50 mac mini外接显示器 画质字体模糊
  • ¥15 TLS1.2协议通信解密
  • ¥40 图书信息管理系统程序编写
  • ¥20 Qcustomplot缩小曲线形状问题