如何编写检查数组数组的过滤器

时间:2015-10-05 17:37:51

标签: javascript typescript

考虑以下数组:

 array1 = ["A","B", "C"];
 array2 = ["D", "E", "F"];
 array3 = ["G", "H", "I"];

 combined = [array1, array2, array3];
 select = ["A","H"];

我需要一个过滤器来组合'基于'选择'返回array1和array3的数组,如A在Array1中,H在array3中。

这就是我尝试过的(在打字稿中)

return routes.filter((route: any) =>  
             roles.some((role: string) =>
                 route.config.roles.some((routeRole: string) =>
                     routeRole === role)));

它似乎有效,但它只适用于route.config.roles中的第一项。

1 个答案:

答案 0 :(得分:2)

使用filtersome

function finder(combined, select) {
  return combined.filter(function (el) {
    return el.some(function (letter) {
      return select.indexOf(letter) > -1;
    });
  });
}

DEMO