Mi piacerebbe ottenere qualcosa come _.first
con _.filter
, ovvero, avendo una raccolta di elementi, vorrei ottenere il primo (se esiste) che corrisponde a una verità test (iteratore).Ottieni il primo elemento di una raccolta che corrisponde alla funzione iteratore
Per esempio, dato un array simile al seguente:
var arr = [{a: 1}, {a: 5}, {a: 9}, {a: 11}, {a: 15}]
vorrei getthe primo (e unico per primo) elemento che soddisfa la mia funzione personalizzata:
_.filterFirst(arr, function(el) { return el.a > 10; }); // make it
Finora:
_.first(arr) == {a:1}
_.filter(arr, function(...)) == [{a:11}, {a:15}]
c'è una soluzione pulita per fare questo che è meglio di _.first(_.filter(arr, iterator))
?
Dai un'occhiata alla funzione find http://underscorejs.org/#find –
Perché non solo _.filter (arr, iterator) [0] – levi
@levi perché consuma più CPU di quanto dovrebbe. – ducin