JavaScript 数组对象删除某些元素

本文介绍了一种在JavaScript中从数组对象中删除指定元素的有效方法。通过使用filter方法结合map和includes方法,可以轻松地从源数组中移除匹配特定条件的所有元素。提供了一个具体的示例来展示这一过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

实际开发中,总是会遇到数组对象中,删除指定的元素对象,以下示例是我在开发中使用的的删除的方法,仅供参考

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>数组对象删除元素对象</title>
  </head>

  <body>
    <script>
      // 1、从数组中删除某些元素
      let array = [
        {
          INSTU_CDE: '0000',
          ORG_NAME: '北区分行',
          LEVELUNIT: '2',
          APP_ID: '62',
          SUPERUNITID: '500',
          UNITSEQ: '500,002',
          ID: '002',
          UNITNAME: '北区分行',
          UNITID: '002',
          ISLEAF: false,
        },
        {
          INSTU_CDE: '0000',
          ORG_NAME: '东区分行',
          LEVELUNIT: '2',
          APP_ID: '62',
          SUPERUNITID: '500',
          UNITSEQ: '500,003',
          ID: '003',
          UNITNAME: '东区分行',
          UNITID: '003',
          ISLEAF: false,
        },
        {
          INSTU_CDE: '0000',
          ORG_NAME: '南区分行',
          LEVELUNIT: '2',
          APP_ID: '62',
          SUPERUNITID: '500',
          UNITSEQ: '500,004',
          ID: '004',
          UNITNAME: '南区分行',
          UNITID: '004',
          ISLEAF: false,
        },
        {
          INSTU_CDE: '0000',
          ORG_NAME: '北京分行',
          LEVELUNIT: '2',
          APP_ID: '62',
          SUPERUNITID: '500',
          UNITSEQ: '500,005',
          ID: '005',
          UNITNAME: '北京分行',
          UNITID: '005',
          ISLEAF: false,
        },
        {
          INSTU_CDE: '0000',
          ORG_NAME: '天津分行',
          LEVELUNIT: '2',
          APP_ID: '62',
          SUPERUNITID: '500',
          UNITSEQ: '500,006',
          ID: '006',
          UNITNAME: '天津分行',
          UNITID: '006',
          ISLEAF: false,
        },
        {
          INSTU_CDE: '0000',
          ORG_NAME: '海南银行',
          LEVELUNIT: '2',
          APP_ID: '62',
          SUPERUNITID: '500',
          UNITSEQ: '500,100001',
          ID: '100001',
          UNITNAME: '海南银行',
          UNITID: '100001',
          ISLEAF: false,
        },
        {
          INSTU_CDE: '0000',
          ORG_NAME: '北京分公司',
          LEVELUNIT: '2',
          APP_ID: '62',
          SUPERUNITID: '500',
          UNITSEQ: '500,800',
          ID: '800',
          UNITNAME: '北京分公司',
          UNITID: '800',
          ISLEAF: false,
        },
        {
          INSTU_CDE: '0000',
          ORG_NAME: '上海分公司',
          LEVELUNIT: '2',
          APP_ID: '62',
          SUPERUNITID: '500',
          UNITSEQ: '500,900',
          ID: '900',
          UNITNAME: '上海分公司',
          UNITID: '900',
          ISLEAF: false,
        },
        {
          INSTU_CDE: '0000',
          ORG_NAME: '三亚分行',
          LEVELUNIT: '3',
          APP_ID: '62',
          SUPERUNITID: '100001',
          UNITSEQ: '500,100001,100002',
          ID: '100002',
          UNITNAME: '三亚分行',
          UNITID: '100002',
          ISLEAF: true,
        },
      ];
      let splitArr = [
        {
          INSTU_CDE: '0000',
          ORG_NAME: '南区分行',
          LEVELUNIT: '2',
          APP_ID: '62',
          SUPERUNITID: '500',
          UNITSEQ: '500,004',
          ID: '004',
          UNITNAME: '南区分行',
          UNITID: '004',
          ISLEAF: false,
        },
        {
          INSTU_CDE: '0000',
          ORG_NAME: '北京分行',
          LEVELUNIT: '2',
          APP_ID: '62',
          SUPERUNITID: '500',
          UNITSEQ: '500,005',
          ID: '005',
          UNITNAME: '北京分行',
          UNITID: '005',
          ISLEAF: false,
        },
      ];
      console.log('原始数组对象', array);
      // 输出 --------> 原始数组对象 [{"INSTU_CDE":"0000","ORG_NAME":"北区分行","LEVELUNIT":"2","APP_ID":"62","SUPERUNITID":"500","UNITSEQ":"500,002","ID":"002","UNITNAME":"北区分行","UNITID":"002","ISLEAF":false},{"INSTU_CDE":"0000","ORG_NAME":"东区分行","LEVELUNIT":"2","APP_ID":"62","SUPERUNITID":"500","UNITSEQ":"500,003","ID":"003","UNITNAME":"东区分行","UNITID":"003","ISLEAF":false},{"INSTU_CDE":"0000","ORG_NAME":"南区分行","LEVELUNIT":"2","APP_ID":"62","SUPERUNITID":"500","UNITSEQ":"500,004","ID":"004","UNITNAME":"南区分行","UNITID":"004","ISLEAF":false},{"INSTU_CDE":"0000","ORG_NAME":"北京分行","LEVELUNIT":"2","APP_ID":"62","SUPERUNITID":"500","UNITSEQ":"500,005","ID":"005","UNITNAME":"北京分行","UNITID":"005","ISLEAF":false},{"INSTU_CDE":"0000","ORG_NAME":"天津分行","LEVELUNIT":"2","APP_ID":"62","SUPERUNITID":"500","UNITSEQ":"500,006","ID":"006","UNITNAME":"天津分行","UNITID":"006","ISLEAF":false},{"INSTU_CDE":"0000","ORG_NAME":"海南银行","LEVELUNIT":"2","APP_ID":"62","SUPERUNITID":"500","UNITSEQ":"500,100001","ID":"100001","UNITNAME":"海南银行","UNITID":"100001","ISLEAF":false},{"INSTU_CDE":"0000","ORG_NAME":"北京分公司","LEVELUNIT":"2","APP_ID":"62","SUPERUNITID":"500","UNITSEQ":"500,800","ID":"800","UNITNAME":"北京分公司","UNITID":"800","ISLEAF":false},{"INSTU_CDE":"0000","ORG_NAME":"上海分公司","LEVELUNIT":"2","APP_ID":"62","SUPERUNITID":"500","UNITSEQ":"500,900","ID":"900","UNITNAME":"上海分公司","UNITID":"900","ISLEAF":false},{"INSTU_CDE":"0000","ORG_NAME":"三亚分行","LEVELUNIT":"3","APP_ID":"62","SUPERUNITID":"100001","UNITSEQ":"500,100001,100002","ID":"100002","UNITNAME":"三亚分行","UNITID":"100002","ISLEAF":true}]
      console.log('被删除数组对象', splitArr);
      // 输出 ---------> 被删除数组对象 [{"INSTU_CDE":"0000","ORG_NAME":"南区分行","LEVELUNIT":"2","APP_ID":"62","SUPERUNITID":"500","UNITSEQ":"500,004","ID":"004","UNITNAME":"南区分行","UNITID":"004","ISLEAF":false},{"INSTU_CDE":"0000","ORG_NAME":"北京分行","LEVELUNIT":"2","APP_ID":"62","SUPERUNITID":"500","UNITSEQ":"500,005","ID":"005","UNITNAME":"北京分行","UNITID":"005","ISLEAF":false}]

      // 从array中删除 splitArr
      const newArray = [];
      newarray = array.filter(arrItem => {
        // 找到 被删除数组对象中 的主键 ,此处是 ID
        const splitArrList = splitArr.map(splitArrItem => {
          return splitArrItem['ID'];
        });
        return !splitArrList.includes(arrItem['ID']);
      });
      console.log('删除后数组对象', newarray);
      // 输出 -----------> 删除后数组对象 [{"INSTU_CDE":"0000","ORG_NAME":"北区分行","LEVELUNIT":"2","APP_ID":"62","SUPERUNITID":"500","UNITSEQ":"500,002","ID":"002","UNITNAME":"北区分行","UNITID":"002","ISLEAF":false},{"INSTU_CDE":"0000","ORG_NAME":"东区分行","LEVELUNIT":"2","APP_ID":"62","SUPERUNITID":"500","UNITSEQ":"500,003","ID":"003","UNITNAME":"东区分行","UNITID":"003","ISLEAF":false},{"INSTU_CDE":"0000","ORG_NAME":"天津分行","LEVELUNIT":"2","APP_ID":"62","SUPERUNITID":"500","UNITSEQ":"500,006","ID":"006","UNITNAME":"天津分行","UNITID":"006","ISLEAF":false},{"INSTU_CDE":"0000","ORG_NAME":"海南银行","LEVELUNIT":"2","APP_ID":"62","SUPERUNITID":"500","UNITSEQ":"500,100001","ID":"100001","UNITNAME":"海南银行","UNITID":"100001","ISLEAF":false},{"INSTU_CDE":"0000","ORG_NAME":"北京分公司","LEVELUNIT":"2","APP_ID":"62","SUPERUNITID":"500","UNITSEQ":"500,800","ID":"800","UNITNAME":"北京分公司","UNITID":"800","ISLEAF":false},{"INSTU_CDE":"0000","ORG_NAME":"上海分公司","LEVELUNIT":"2","APP_ID":"62","SUPERUNITID":"500","UNITSEQ":"500,900","ID":"900","UNITNAME":"上海分公司","UNITID":"900","ISLEAF":false},{"INSTU_CDE":"0000","ORG_NAME":"三亚分行","LEVELUNIT":"3","APP_ID":"62","SUPERUNITID":"100001","UNITSEQ":"500,100001,100002","ID":"100002","UNITNAME":"三亚分行","UNITID":"100002","ISLEAF":true}]
    </script>

    <script>
      var a = [
        {
          id: 1,
          name: 'hong',
        },
        {
          id: 2,
          name: 'huang',
        },
        {
          id: 3,
          name: 'lan',
        },
      ];

      var b = [
        {
          id: 1,
          name: 'hong',
        },
        {
          id: 2,
          name: 'lan',
        },
        {
          id: 4,
          name: 'lv',
        },
      ];

      b.forEach(item => {
        a = a.filter(a => a.id != item.id);
      });
      console.log(JSON.stringify(a));
      // [{"id":3,"name":"lan"}]
    </script>
  </body>
</html>

可以直接复制运行代码,查看打印结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值