您好,您能帮我创建一个函数吗,可以根据它们的出现从数组中删除元素
例如考虑下面的两个数组:
array 1 = [1,1,1,2,2]
array 2 = [1]
上述预期结果
array 3 = [1,1,2,2]
例如考虑下面两个数组
array 1 = [1,1,1,2,2]
array 2 = [1,1]
上述预期结果
array 3 = [1,2,2]
我使用了过滤器,但它删除了所有出现的1
array1 = array1.filter(item => array2.indexOf(item) < 0);
我需要JavaScript中的一个函数,该函数将删除两个数组均不匹配的情况
答案 0 :(得分:3)
只需检查array2
中的事件,然后使用splice
将其删除即可。
const array1 = [1,1,1,2,2]
const array2 = [1,1]
const output = []
array1.forEach(item => {
const array2Index = array2.indexOf(item);
if (array2Index > -1) {
// remove array2 occurance
array2.splice(array2Index, 1);
} else {
output.push(item)
}
});
console.log(output)