获取与迭代器函数匹配的集合的第一个元素

24 浏览
0 Comments

获取与迭代器函数匹配的集合的第一个元素

我想要用_.filter实现类似于_.first的功能,也就是说,给定一个元素集合,我想要得到第一个(如果存在的话)满足某个条件的元素。

例如,给定如下的数组:

var arr = [{a: 1}, {a: 5}, {a: 9}, {a: 11}, {a: 15}]

我想要得到第一个(也是唯一一个)满足自定义函数的元素:

_.filterFirst(arr, function(el) { return el.a > 10; }); // 实现它

目前为止:

_.first(arr) == {a:1}
_.filter(arr, function(...)) == [{a:11}, {a:15}]

有没有一种更好的清晰的解决方案来实现这个,而不是使用_.first(_.filter(arr, iterator))

0