当前位置: 首页 > 知识库问答 >
问题:

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

华易安
2023-03-14
const arr1 = [{id:1,name:'qwerty'},{id:2,name:'qwerty'}]
const arr2 = [{id:1,name:'qwerty'},{id:2,name:'qwerty'},{id:3,name:'qwerty'},{id:4,name:'qwerty'}]

我需要按id从arr1中移除arr2中的所有元素

结果

const arr2 = [{id:3,name:'qwerty'},{id:4,name:'qwerty'}]

共有1个答案

广献
2023-03-14

您可以从ARR1和筛选ARR2中获取具有所有ID

这种方法

result = arr2.filter(
    (ids => ({ id }) => !ids.has(id))
    (arr1.reduce((s, { id }) => s.add(id), new Set))
);

的实例上使用带有IIFE(立即调用的函数表达式)的闭包

arr1.reduce((s, { id }) => s.add(id), new Set)
(ids => callback)(instanceOfSet)
({ id }) => !ids.has(id)
const
    arr1 = [{ id: 1, name: 'qwerty' }, { id: 2, name: 'qwerty' }],
    arr2 = [{ id: 1, name: 'qwerty' }, { id: 2, name: 'qwerty' }, { id: 3, name: 'qwerty' }, { id: 4, name: 'qwerty' }],
    result = arr2.filter(
        (ids => ({ id }) => !ids.has(id))
        (arr1.reduce((s, { id }) => s.add(id), new Set))
    );

console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }
 类似资料:
  • 给定下面的代码: HTML: 断续器 我必须使用此代码才能删除元素吗?它似乎太冗长了。

  • 问题内容: 我想将一个DIV元素移到另一个元素中。例如,我要移动此对象(包括所有子对象): 到这个: 这样我有: 问题答案: 曾经尝试过普通的JavaScript … 吗?

  • 如何从另一个数组中删除数组的元素?我有第一个数组[“a”“b”“c”]。以及第二阵列[“a”、“e”]、[“e”、“b”、“c”]、[“a”、“c”]。 如何从第二个数组中删除第一个数组的元素? 结果,得到[["e"],["e"], []].

  • 例如,我们有一个数组: 现在我想创建d=5的数组的最大数量: array1: array2:

  • 我有一个名为arr的数组,大小为1024。所以基本上我想删除数组的第1X个元素。我该怎么做?我是这么想的:创建一个指针,指向数组的第一个值(ARR[0])。执行指针算术将其带到数组的第X个元素。然后将arr[0]设置为指针p,这将有效地移除前X个元素?这样行吗?或者有没有更简单的方法来移除数组的前X个元素?

  • 问题内容: 说我有这些二维数组A和B。 如何从B中删除A中的元素。(集合论中的补语:AB) 更准确地说,我想做这样的事情。 问题答案: 基于this solution对,这里是用更少的内存占用与NumPy基础的解决方案,并与大型阵列工作时,可能是有益的- 样品运行- 在大型阵列上的运行时测试- 具有基础解决方案的时间- 基于更少内存占用量的定时解决方案- 进一步提升性能 通过将每一行视为索引元组来