当前位置: 首页 > 面试题库 >

删除另一个数组中包含的所有元素

宦树
2023-03-14
问题内容

我正在寻找一种有效的方法来从javascript数组中删除所有元素(如果它们存在于另一个数组中)。

// If I have this array:
var myArray = ['a', 'b', 'c', 'd', 'e', 'f', 'g'];

// and this one:
var toRemove = ['b', 'c', 'g'];

我想对myArray进行操作以使其保持这种状态: ['a', 'd', 'e', 'f']

使用jQuery,我使用grep()inArray(),效果很好:

myArray = $.grep(myArray, function(value) {
    return $.inArray(value, toRemove) < 0;
});

有没有一种纯Javascript方式无需循环和拼接的方法?


问题答案:

使用Array.filter()方法:

myArray = myArray.filter( function( el ) {
  return toRemove.indexOf( el ) < 0;
} );

小改进,因为对浏览器的支持Array.includes()增加了:

myArray = myArray.filter( function( el ) {
  return !toRemove.includes( el );
} );

使用arrow functions:下一个适应:

myArray = myArray.filter( ( el ) => !toRemove.includes( el ) );


 类似资料:
  • 我正在寻找一种有效的方法,从一个javascript数组中删除所有元素,如果它们存在于另一个数组中。 我想对myArray进行操作,使其保持这种状态: 使用jQuery,我使用和,效果很好: 有没有一种纯javascript的方法可以做到这一点,而不需要循环和拼接?

  • 问题内容: 我试图遍历2个数组,外部数组则比另一个数组更长。它将循环遍历第一个,如果第二个数组不包含该int,它将返回false。但是我不知道该怎么做。这是我到目前为止所拥有的: 运行时出现此错误: 我想知道是否可以不使用嵌套循环(如上)来完成。我知道我做错了,如果有人可以在此问题上提供帮助,那就太好了。我也不确定要在Java文档中寻找什么类。 问题答案: 您可以检查较大的数组是否包含较小数组中的

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

  • 我误解了如何删除数组中与另一个数组有匹配元素的元素。 示例: 预期: 希望能举一些例子来说明如何做到这一点。用两个forEach或filter和checking语句尝试了很多次,但我总是得到错误的结果。

  • 问题内容: 我有两个数组 我想从array1中删除array2的元素 问题答案: 最简单的方法是将两个数组都转换为集合,从第一个数组中减去第二个数组,将结果转换为数组,然后将其分配回: 请注意,您的代码不是有效的Swift-您可以使用类型推断来声明和初始化两个数组,如下所示:

  • 问题内容: 我想找出$ all是否包含所有$ search_this值并返回true或false。有什么想法吗? 问题答案: 看一下array_intersect()。