I'm wondering if there's a known, built-in/elegant way to find the first element of a JS array matching a given condition. A C# equivalent would be [List.Find](http://msdn.microsoft.com/en-us/library/x0b5b5bc.aspx).

So far I've been using a two-function combo like this:

```
// 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);
};

```

And then I can use:

```
var result = someArray.findFirst(isNotNullNorUndefined);

```

But since there are [so many functional-style array methods in ECMAScript](https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array#Methods), perhaps there's something out there already like this? I imagine lots of people have to implement stuff like this all the time...