zoukankan      html  css  js  c++  java
  • js 实现json数组集合去重,差集,并集,交集。

          let list = [
            {
              id: "1",
              content: "A"
            },
            {
              id: "2",
              content: "B"
            },
            {
              id: "3",
              content: "C"
            },
            {
              id: "4",
              content: "D"
            }
          ];
          let arr = [
            {
              id: "1",
              content: "C"
            },
            {
              id: "2",
              content: "D"
            }
          ];
    
          // let list = [1, 2, 3, 4, 5];
          // let arr = [3, 4];
    
          // 去重
          function listRemoveRepeat(x) {
            let result = [];
            for (let i = 0; i < x.length; i++) {
              let flag = true;
              let temp = x[i];
              for (let j = 0; j < result.length; j++) {
                // 普通数组 (temp === result[j])
                if (temp.id === result[j].id) {
                  flag = false;
                  break;
                }
              }
              if (flag) {
                result.push(temp);
              }
            }
            return result;
          }
          // 差集
          function listDifference(x, y) {
            let clone = x.slice(0);
            for (let i = 0; i < y.length; i++) {
              let temp = y[i];
              for (let j = 0; j < clone.length; j++) {
                // 普通数组 (temp === clone[j])
                if (temp.id === clone[j].id) {
                  clone.splice(j, 1);
                }
              }
            }
            return listRemoveRepeat(clone);
          }
          // 并集
          function listConcat(x, y) {
            return listRemoveRepeat(x.concat(y));
          }
          // 交集
          function listIntersection(x, y) {
            let result = [];
            for (let i = 0; i < y.length; i++) {
              let temp = y[i];
              for (let j = 0; j < x.length; j++) {
                // 普通数组 (temp === clone[j])
                if (temp.id === x[j].id) {
                  result.push(temp);
                  break;
                }
              }
            }
            return listRemoveRepeat(result);
          }
          console.log("去重", listRemoveRepeat(list));
          console.log("差集", listDifference(list, arr));
          console.log("并集", listConcat(list, arr));
          console.log("交集", listIntersection(list, arr));
    学习在于积累:滴水可以石穿! 学而不思则罔,思而不学则殆!
  • 相关阅读:
    多时钟域设计——控制信号传输
    时钟与复位
    注意
    有限状态机
    亚稳态
    python读取json文件制作股票价格走势
    python读取csv文件绘制气温图,x轴为日期,并填充颜色
    python读取csv文件数据绘制图像,例子绘制天气每天最高最低气温气象图
    python随机漫步
    python读取txt文件绘制散点图
  • 原文地址:https://www.cnblogs.com/wyuan-yuan/p/9430105.html
Copyright © 2011-2022 走看看