从一个数组中删除另一个数组中的值

Posted 现刻

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从一个数组中删除另一个数组中的值相关的知识,希望对你有一定的参考价值。

最近项目中一个需求是用户操作后自动删除列表中的不符合条件的多项。

模拟数据如下:

const originArr = [\'1\',\'2\',\'3\'];
const deleteArr = [\'1\',\'4\'];

期望结果:

const newArr = [\'2\',\'3\']

模拟数据中有 4 是因为在复杂的情况下可能计算出不在列表中的数据ID,考虑到程序的健壮性,不影响计算结果。

方法1:
通过遍历,然后查找index, splice(index, 1)删除数组元素比较麻烦,通过百度搜索大多都是这个方法,代码比较繁琐就不列出代码了。

方法2:
通过es6 Set 和数组进行转换

const arrSet = new Set(originArr);
    for (const o of deleteArr) {
      arrSet.delete(o);
    }
const newArr = [...arrSet];

方法3:
通过 filter 和 includes

const newArr = originArr.filter((o) => !deleteArr.includes(o));

如果你还有其它方法欢迎留言讨论哦。

以上是关于从一个数组中删除另一个数组中的值的主要内容,如果未能解决你的问题,请参考以下文章

使用此特定代码从另一个数组中删除一个数组[重复]

过滤器数组 - 删除另一个数组中存在的值[重复]

从数组中删除一个元素后如何检查

当单击不同数组中的另一个单独项目同时从第一个数组中删除该项目时,从一个数组中随机显示项目?

如何通过另一个数组中的元素 id 从数组中删除元素? [关闭]

当对象中的字段发生更改时如何从 v-model 数组中删除对象