Here you can find the source of sortBy()
Array.prototype.sortBy = function() { function _sortByAttr(attr) { var sortOrder = 1; if (attr[0] == "-") { sortOrder = -1;/*from w w w. j av a 2 s . com*/ attr = attr.substr(1); } return function(a, b) { var result = (a[attr] < b[attr]) ? -1 : (a[attr] > b[attr]) ? 1 : 0; return result * sortOrder; } } function _getSortFunc() { if (arguments.length == 0) { throw "Zero length arguments not allowed for Array.sortBy()"; } var args = arguments; return function(a, b) { for (var result = 0, i = 0; result == 0 && i < args.length; i++) { result = _sortByAttr(args[i])(a, b); } return result; } } return this.sort(_getSortFunc.apply(null, arguments)); }
Array.prototype.sortAscending = function() { return this.sort( function( a, b ) { if ( a > b ) { return 1; return a < b ? -1 : 0; } ); };
Array.prototype.sortAscending = function() { this.sort(function(a, b) { return a - b; }); return this; }; var largestProductOfThree = function(array) { array = array.slice().sortAscending(); var secondFromLast = array[array.length - 2]; ...
Array.prototype.sortBool = function(iteratee) { var _iteratee = function(a, b) {return iteratee(a, b) ? -1 : 1}; return this.sort(_iteratee); };
Array.prototype.sortBy= function( field, ascending_order ) { var asc = ascending_order ? 1 : -1; return this.sort(function (a, b) { return (asc *(a[field] <= b[field]) ? -1:1); }); };
Array.prototype.sortBy = (function() { function identity(v){return v;} function ignoreCase(v){return typeof(v)==="string" ? v.toLowerCase() : v;} function makeCompareFunction(f, opt){ opt = typeof(opt)==="number" ? {direction:opt} : opt||{}; if(typeof(f)!="function"){ var prop = f; f = function(v1){return !!v1[prop] ? v1[prop] : "";} if(f.length === 1) { var uf = f; var preprocess = opt.ignoreCase?ignoreCase:identity; f = function(v1,v2) {return preprocess(uf(v1)) < preprocess(uf(v2)) ? -1 : preprocess(uf(v1)) > preprocess(uf(v2)) ? 1 : 0;} if(opt.direction === -1) return function(v1,v2){return -f(v1,v2)}; return f; return function(callbacks){ var array = this; function tb(func, opt) { var x = typeof(this) == "function" ? this : false; var y = makeCompareFunction(func, opt); var f = x ? function(a, b) { return x(a,b) || y(a,b); : y; f.thenBy = tb; f.sort = () => array.sort(f); return f; return tb(callbacks); }; })();
Array.prototype.sortBy = function(comparator) { return this.sort((a,b) => { return comparator(a) < comparator(b) ? -1 : 1 })
Array.prototype.sortBy = function (f) { return this.sort(function (a, b) { if (a[f] < b[f]) return -1; if (a[f] > b[f]) return 1; return 0; }); }; ...
Array.prototype.sortBy = function (field, direction) { var asc = direction === 'asc' return this.sort(function (a, b) { if (a[field] < b[field]) return asc ? 1 : -1 if (a[field] > b[field]) return asc ? -1 : 1 return 0 })
Array.prototype.sortBy = function(index,sort){ index = index || 0; sort = sort || "asc"; var i, j, t, len = this.length; for(i = 0 ; i < len ; i ++){ for(j = 1 ; j < len ; j++){ if(this[j].charCodeAt(index >= 0 ? index : this[j].length+index) > this[j-1].charCodeAt(index >= 0 ? index : this[j-1].length+index)){ if(sort === "asc"){ }else{ ...