JavaScript filter that stops at the first result JavaScript filter that stops at the first result javascript javascript

JavaScript filter that stops at the first result


You can try .find:

[7,5,3,2,1].find(x => x % 2 == 0);// result: 2

From the docs:

The find() method returns a value of the first element in the arraythat satisfies the provided testing function. Otherwise undefined isreturned.

Simple benchmark

var arr = [...Array(10000)].map( (item, idx) => idx )arr.filter(i => i == 3000)[0]arr.find(i => i == 3000)/*  arr.filter x 1,358 ops/sec ±0.40% (91 runs sampled)  arr.find x 23,743 ops/sec ±0.40% (90 runs sampled)  Fastest is arr.find*/


I think Array.prototype.find() accomplishes this - it will retrieve the first element in an array that matches a certain criteria:

[7, 5, 3, 2, 1].find(isEvenNumber); //2function isEvenNumber(elem) {  return elem % 2 === 0;}