gpt4 book ai didi

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

转载 作者:IT王子 更新时间:2023-10-29 03:11:08 27 4
gpt4 key购买 nike

我想用_.filter实现类似_.first的东西,也就是说,有一个元素集合,我想得到第一个(如果存在)匹配真值测试(迭代器)。

例如,给定如下数组:

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

我想获取与我的自定义函数匹配的第一个(也是唯一一个)元素:

_.filterFirst(arr, function(el) { return el.a > 10; }); // make it

到目前为止:

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

有没有比 _.first(_.filter(arr, iterator)) 更好的干净解决方案?

最佳答案

您可以使用查找:

Looks through each value in the list, returning the first one that passes a truth test (iterator), or undefined if no value passes the test. The function returns as soon as it finds an acceptable element, and doesn't traverse the entire list.

使用你的例子:

var g = _.find(arr, function (x) { return x.a > 10 })

查看主页:http://underscorejs.org

另一件需要注意的事情(这可能是你的问题)是 chain 函数将调用连接在一起:

var g = _.chain(arr).filter(function (x) { return x.a > 10 }).first().value()

请注意对 filter 和 `first' 的调用,它们可以在没有任何嵌套的情况下相互跟随。

关于javascript - 获取与迭代器函数匹配的集合的第一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19497493/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com