Here you can find the source of firstOrDefault(func)
Array.prototype.firstOrDefault = function(func) { var elements = this.filter(func) if (elements.length > 0) return elements[0] else/*from ww w . j a va 2 s . c o m*/ return undefined }
"use strict"; var firstOrDefault = function (array, expr) { if (typeof expr === "function") { array = array.filter(expr); return typeof array[0] === "undefined" ? null : array[0]; }; Array.prototype.firstOrDefault = function (expr) { return firstOrDefault(this, expr); ...
Array.prototype.firstOrDefault = function (predicate) { if (predicate && typeof predicate === 'function') { for (var i = 0; i < this.length; i++) { if (predicate(this[i])) return this[i]; return null; } else { return this.length > 0 ? this[0] : null; };