JS——把数组中拥有相同值的部分放在一起

JS——把数组中拥有相同值的部分放在一起

出自:该地址下边的回答:https://segmentfault.com/q/1010000017751288

此处留痕:
数据:目的是要把zhuanye字段值相同的项目信息存放在一起

tableData2: [
        {
          name: "项目1",
          birth: "80m²",
          status: "已确认",
          time: "2020-01-01",
          zhuanye: "金水区资源局",
          isOption: false,
        },
        {
          name: "项目2",
          birth: "80m²",
          status: "已确认",
          time: "2020-01-01",
          zhuanye: "金水区资源局",
          isOption: false,
        },
        {
          name: "项目3",
          birth: "80m²",
          status: "待确认",
          time: "--  --",
          zhuanye: "金水区税务局",
          isOption: true,
        },
        {
          name: "项目4",
          birth: "80m²",
          status: "已确认",
          time: "--  --",
          zhuanye: "金水区资源局",
          isOption: true,
        },
      ],
      
     JS部分如下:
     checkSameData(tableData2){
          let cache = {};  //存储的是键是zhuanye 的值,值是zhuanye 在indeces中数组的下标
          let indices = [];  //数组中每一个值是一个数组,数组中的每一个元素是原数组中相同zhuanye的下标
          tableData2.map((item,index)=>{
            let zhuanye = item.zhuanye;
            let _index = cache[zhuanye];
            if(_index!==undefined){
                 indices[_index].push(index)
            }else{
                cache[zhuanye] = indices.length
                indices.push([index])
            }
          })
          let result = [];
          indices.map((item)=>{
            item.map((index)=>{
                result.push(tableData2[index])
            })
          })
          this.tableData2 = result
      },
 
  • 5
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值