Equivalent to LINQ's Enumerable.First(predicate) Equivalent to LINQ's Enumerable.First(predicate) arrays arrays

Equivalent to LINQ's Enumerable.First(predicate)


No need to reinvent the wheel, the correct way to do it is to use .find:

var firstMatch = ['a', 'b', 'c'].find(applyConditions);

If you're using a browser that does not support .find you can polyfill it


You could emulate this in the case where you want to return the first truthy value with reduce.

['a', 'b', 'c'].reduce(function(prev, curr) {     return prev || predicate(curr) && curr; }, false);

edit: made more terse with @BenjaminGruenbaum suggestion


LINQ users call first and firstOrDefault a lot with no predicate, which is not possible with find. So,

  first() {    var firstOrDefault = this.firstOrDefault();    if(firstOrDefault !== undefined)      return firstOrDefault;    else      throw new Error('No element satisfies the condition in predicate.');  }  firstOrDefault() {    return this.find(o => true);  }