Javascript 根据另一个数组筛选一个数组

Javascript 根据另一个数组筛选一个数组,javascript,jquery,Javascript,Jquery,我有两个这样的数组 var=[{ 姓名:“蝙蝠侠”, 特许经营权:“DC” }, { 姓名:“铁人”, 特许经营:“奇迹” }, { 名称:“雷神”, 特许经营:“奇迹” }, { 名字:“超人”, 特许经营权:“DC” } ]; var stars=[“雷神”、“超人”]; var marvelHeroes=heroes.filter(函数(hero)){ return stars.indexOf(hero.name)>=0; }); console.log(奇迹英雄)您可以使用包含来确定数

我有两个这样的数组

var=[{
姓名:“蝙蝠侠”,
特许经营权:“DC”
},
{
姓名:“铁人”,
特许经营:“奇迹”
},
{
名称:“雷神”,
特许经营:“奇迹”
},
{
名字:“超人”,
特许经营权:“DC”
}
];
var stars=[“雷神”、“超人”];
var marvelHeroes=heroes.filter(函数(hero)){
return stars.indexOf(hero.name)>=0;
});

console.log(奇迹英雄)
您可以使用
包含
来确定数组是否包含某个元素

var英雄=[{name:“蝙蝠侠”,特许经营权:“DC”},{name:“铁人”,特许经营权:“惊奇漫画”},{name:“雷神”,特许经营权:“惊奇漫画”},{name:“超人”,特许经营权:“DC”}];
var stars=[“雷神”、“超人”];
var marvelHeroes=heroes.filter(函数(hero)){
返回星。包括(英雄。名字);
});

console.log(奇迹英雄)应该是return
stars.indexOf(item.name)!=-1 ;

演示
var=[
{名称:“蝙蝠侠”,特许经营权:“DC”},
{名称:“铁人”,特许经营权:“奇迹”},
{名称:“雷神”,特许经营权:“奇迹”},
{名称:“超人”,特许经营权:“DC”}
];
var stars=[“雷神”、“超人”];
var filtered=heros.filter(函数(项){
返回星号。indexOf(item.name)!=-1;
});

console.log(过滤)您要选择哪个
英雄
?使用
hero[index]选择。name
I将您的代码转换为代码段,并将对象记录到控制台。正如预期的那样。谢谢@Eddie,从性能的角度来看,哪一个更快?”“索引”或“包含”。我的数组很大,所以性能很重要。我喜欢使用
includes()
,因为它更清晰,但我不确定性能。嘿@Eddie,我没有投反对票,我想是31piy,他最初投了我的问题和所有答案的反对票。请参阅上述Sajeetharan回复中的对话。
=0
-1
。因为OP的代码工作正常。请看片段。这个问题应该以离题的形式结束。但他提到了这个问题。我理解,但为了澄清,一个评论就足够了。同样的问题,我不知道@31piy为什么也否决了我的问题?人们问问题,因为他们不确定自己的代码。这是使用否决票的错误做法。