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

模拟数据如下:

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));

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


现刻
173 声望0 粉丝

勤思笃行