如何编写一个数组过滤器,它返回另一个数组中的所有数组项

时间:2015-10-05 17:05:35

标签: javascript

assignedRoles = ['User','InCharge'];
items = ['Admin','Supervisor','User', 'InCharge'];

我需要一个过滤器,它将返回assignRoles中的所有项目。

因此,在上面的示例中,过滤器将返回“User”和“InCharge”

这就是我的尝试:

return items.filter(a=> a.any(assignedRoles);

2 个答案:

答案 0 :(得分:5)

使用indexOf()

var assignedRoles = ['User', 'InCharge'];
var items = ['Admin', 'Supervisor', 'User', 'InCharge'];

var answer = items.filter(function(item) {
  return assignedRoles.indexOf(item) > -1;
});

console.log(answer);

答案 1 :(得分:0)

只需使用assignedRoles.indexOf() !== -1x !== -1快于x > -1x >= 0

var assignedRoles = ['User', 'InCharge'];
    var items = ['Admin', 'Supervisor', 'User', 'InCharge'];
    
    var result = items.filter(function(item) {
      return assignedRoles.indexOf(item) !== -1;
    });
    
    console.log(result);