javascript - 在javascript中从一个列表中减去另一个列表中的值

标签 javascript

如何从 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#reduceb 创建字典对象。 ,并在过滤中使用它:

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/

相关文章:

php - 将 jQuery/AJAX 脚本附加到使用 window.setInterval(, 1000*60) 方法添加的元素

javascript - 填充多行范围(多列) - google-apps-script

javascript - 是否可以限制用户上传固定尺寸的图片?

javascript - 谷歌网页设计师 : Javascript API - jump to key frame and stop

javascript - 图像未显示在我的 mvc 应用程序中

javascript - 当相对于浏览器窗口没有可用的水平空间时,以相反方向打开 CSS 子菜单

javascript - 通过 dict 数据类型使选项卡特定变量

javascript - 单击时的CSS翻转动画

javascript - 在 IE 中等待服务器端代码时加载动画

javascript - 谷歌地图信息窗口的自定义样式(背景)