lodash _.find 所有匹配项

新手上路,请多包涵

我有简单的功能来返回符合我的标准的对象。

代码看起来像:

     var res = _.find($state.get(), function(i) {
        var match = i.name.match(re);
        return match &&
            (!i.restrict || i.restrict($rootScope.user));
    });

我怎样才能找到满足此条件但所有结果的所有结果(不仅仅是第一个)。

感谢您的任何建议。

原文由 Andurit 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 582
2 个回答

只需使用 _.filter 它会返回所有匹配的项目。

_。筛选

遍历集合的元素,返回所有元素的数组 predicate 返回 truthy for。使用三个参数调用谓词:(value, index|key, collection)。

原文由 stasovlas 发布,翻译遵循 CC BY-SA 3.0 许可协议

不使用 ES6 的 lodash,仅供参考:

基本示例(获取年龄小于 30 岁的人):

 const peopleYoungerThan30 = personArray.filter(person => person.age < 30)

使用您的代码的示例:

 $state.get().filter(i => {
    var match = i.name.match(re);
    return match &&
            (!i.restrict || i.restrict($rootScope.user));
})

原文由 ABCD.ca 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题