Javascript:使用两个数组消除数组元素

Javascript:使用两个数组消除数组元素,javascript,arrays,node.js,Javascript,Arrays,Node.js,例如,我有两个这样的数组 const data = ["John", "Andy", "Ruby"] const eliminator = ["John"] 因此,我预计结果如下: data = ["Andy", "Ruby"] 我对javascript非常陌生。如果答案是简单的javascript,我们将不胜感激,但是高级答案非常受欢迎。谢谢使用Array.filter()来过滤数据数组中不在消除器数组中的值 const data=[“约翰”、“安迪”、“鲁比”] 常数消除器=[“约翰”

例如,我有两个这样的数组

const data = ["John", "Andy", "Ruby"]
const eliminator = ["John"]
因此,我预计结果如下:

data = ["Andy", "Ruby"]
我对javascript非常陌生。如果答案是简单的javascript,我们将不胜感激,但是高级答案非常受欢迎。谢谢

使用
Array.filter()
来过滤
数据
数组中不在
消除器
数组中的值

const data=[“约翰”、“安迪”、“鲁比”]
常数消除器=[“约翰”]
var res=data.filter(name=>eliminator.indexOf(name)=-1);

控制台日志(res)如果在整个项目中都使用此功能,则可以在array类中添加diff原型

Array.prototype.diff = function(eli) {
   return this.filter(function(i) {return eli.indexOf(i) < 0;});
};
提供所需的结果。

使用and(返回truefalse)可以缩短代码

const data=[“约翰”、“安迪”、“鲁比”]
常数消除器=[“约翰”]
var newData=data.filter(o=>!eliminator.includes(o))
console.log(newData)
您可以使用
\uu.difference()

const data = ["John", "Andy", "Ruby"];
const eliminator = ["John"];

var NewData = _.difference(data , eliminator);

// Result : NewData = ["Andy", "Ruby"]

谢谢你,先生。这是最简单的答案,也很容易理解。我不是一个投反对票的人:)我只想补充一点,就是OP问题有标记nodejs,所以我认为IE浏览器和
includes()
的问题无关紧要。nodejs支持6.0.0版中的
includes()
。@Emeeus是的,但OP标记nodejs时有几种情况,但它们也倾向于在前端HTML页面中使用。
const data = ["John", "Andy", "Ruby"];
const eliminator = ["John"];

var NewData = _.difference(data , eliminator);

// Result : NewData = ["Andy", "Ruby"]