如何从 var a = [1,2,2,2,3]
中删除 var b=[2]
中存在的所有值如果 a 值存在于 b 变量中的所有出现都必须删除
var a = [1,2,2,2,5];
var b = [2];
const result = a.filter(function(el){
return /// which condition .?
});
如何删除 b var 值。我们有很多逻辑请简单回答一下
最佳答案
一个简单的解决方案是使用 Array#filter ,并使用 Array#indexOf 检查该值是否存在:
var a = [1, 2, 2, 2, 5];
var b = [2];
var result = a.filter(function(n) {
return b.indexOf(n) === -1;
});
console.log(result);
但是,这需要对第二个数组进行冗余迭代。更好的解决方案是使用 Array#reduce 从 b
创建字典对象。 ,并在过滤中使用它:
var a = [1, 2, 2, 2, 5];
var b = [2];
var bDict = b.reduce(function(d, n) {
d[n] = true;
return d;
}, Object.create(null));
var result = a.filter(function(n) {
return !bDict[n];
});
console.log(result);
关于javascript - 在javascript中从一个列表中减去另一个列表中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47727221/