Как найти первый элемент массива, соответствующий логическому условию в JavaScript?

Мне интересно, существует ли известный, встроенный / элегантный способ найти первый элемент массива JS, соответствующий заданному условию. Эквивалент C # будетList.Find.

До сих пор я использовал двухфункциональную комбинацию, подобную этой:

<code>// Returns the first element of an array that satisfies given predicate
Array.prototype.findFirst = function (predicateCallback) {
    if (typeof predicateCallback !== 'function') {
        return undefined;
    }

    for (var i = 0; i < arr.length; i++) {
        if (i in this && predicateCallback(this[i])) return this[i];
    }

    return undefined;
};

// Check if element is not undefined && not null
isNotNullNorUndefined = function (o) {
    return (typeof (o) !== 'undefined' && o !== null);
};
</code>

И тогда я могу использовать:

<code>var result = someArray.findFirst(isNotNullNorUndefined);
</code>

Но так как естьтак много методов массивов функционального стиля в ECMAScriptВозможно, там что-то уже есть? Я полагаю, что многие люди должны все время реализовывать подобные вещи ...

Ответы на вопрос(10)

Ваш ответ на вопрос