我有 2 个数组,我想从第一个数组中删除元素,然后删除第二个数组中的元素一次,以保留可能的其他重复项:
array1 = [1,1,1,1,2,2,2,2];
array2 = [1,1,2];
//resultingArray = [1,1,2,2,2];
似乎我得到的所有答案都是关于在搜索时删除重复项..
我想知道是否有办法用 filter
来做到这一点,但它似乎只能过滤所有条目
resultingArray = array1.filter(function(el){
return array2.indexOf(el) === -1;
});
//resultingArray = [];
我能想到的另一种方法是像这样逐个删除每个数组元素
for( var i = 0; i < arr.length; i++){
if ( arr[i] === Number) {
arr.splice(i, 1);
i = arr.length;
};
但这似乎不是一个很好的方法?
这些数组之间的差异将删除所有重复的元素
很高兴知道最好的方法或我找不到的重复帖子的说明!!
最佳答案
要实现此目的,您可以循环遍历array2
,删除与array1
中当前值匹配的第一个匹配项。像这样的事情:
let array1 = [1,1,1,1,2,2,2,2];
let array2 = [1,1,2];
array2.forEach(i => array1.splice(array1.indexOf(i), 1));
console.log(array1);
关于javascript - 使用包含重复 JavaScript 的另一个数组从数组中删除元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60248339/