匹配两个数组,把相同的元素删除

  var all_name = [{
    "name": "A组",
    "crpMembersList": []
  }, {
    "name": "B组",
    "crpMembersList": []
  }, {
    "name": "C组",
    "crpMembersList": []
  }, {
    "name": "D组",
    "crpMembersList": []
  }, {
    "name": "E组",
    "crpMembersList": []
  }, {
    "name": "F组",
    "crpMembersList": []
  }, {
    "name": "G组",
    "crpMembersList": []
  }, {
    "name": "H组",
    "crpMembersList": []
  }, {
    "name": "I组",
    "crpMembersList": []
  }, {
    "name": "J组",
    "crpMembersList": []
  }];

  var init_group = [{
    "name": "A组",
    "crpMembersList": []
  }, {
    "name": "B组",
    "crpMembersList": []
  }, {
    "name": "D组",
    "crpMembersList": []
  }];

  var arr = [];
  arrr();

  function arrr() {
    f: for (let n = 0; n < all_name.length; n++) {
      for (let i = 0; i < init_group.length; i++) {
        if (init_group[i].name === all_name[n].name) {
          all_name.splice(n, 1); // 剪切数组原数组会被改变
          arrr(); // 重新执行方法
          break f; // 中断所有的
        }
      }
    }
  }
  console.log(all_name[0].name); // C组

发现有了一个更简单的优化方法

            var all_name = [{
				"name": "A组"
			}, {
				"name": "B组"
			}, {
				"name": "C组"
			}, {
				"name": "D组"
			}, {
				"name": "E组"
			}, {
				"name": "F组"
			}, {
				"name": "G组"
			}, {
				"name": "H组"
			}, {
				"name": "I组"
			}, {
				"name": "J组"
			}];

			var init_group = [{
				"name": "A组"
			}, {
				"name": "B组"
			},{
				"name": "C组"
			}, {
				"name": "D组"
			}, {
				"name": "H组"
			}, {
				"name": "I组"
			}];
			var oIndex = -1;
			for (let i = 0; i < all_name.length; i++) {
				if (all_name[i].name !== init_group[i].name) {
					oIndex = i;
					break;
				}
				continue;
			}
			console.log(all_name[oIndex].name);

如有建议,欢迎交流

以下为操作逻辑

新建分组的名字,依次为A组,B组,C组,D组......最多到J组;

新建到D组的时候,删除了其中任意一个组别,如:C组;此时组别为A组,B组,D组,即数据init_group 

再次新建的时候,组别名字应是其中一个依次缺失的名字,即最终的输出结果:console.log(all_name[0].name);  // C组

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值