List of utility methods to do Array Sort
sortBy(field, direction)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 }) | |
sortBy(index,sort)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{ ... | |
sortBy(keySelector)Array.prototype.sortBy = function (keySelector) { return this.slice().sort(function(a,b) { var aKey = keySelector(a), bKey = keySelector(b); if (aKey > bKey) { return 1; else if (bKey > aKey) { return -1; ... | |
sortBy(p)Array.prototype.sortBy = function(p) { return this.slice(0).sort(function(a,b) { return (a[p] > b[p]) ? 1 : (a[p] < b[p]) ? -1 : 0; }); }; | |
sortBy(p, type)Array.prototype.sortBy = function(p, type) { if(type == undefined) type = "asc"; if(type == "desc"){ return this.slice(0).sort(function(a,b) { return (a[p] < b[p]) ? 1 : (a[p] > b[p]) ? -1 : 0; }); } else { return this.slice(0).sort(function(a,b) { return (a[p] > b[p]) ? 1 : (a[p] < b[p]) ? -1 : 0; ... | |
sortByDesc(f)Array.prototype.sortByDesc = function (f) { return this.sort(function (a, b) { if (a[f] < b[f]) return 1; if (a[f] > b[f]) return -1; return 0; }); }; ... | |
sortByFrequency()Array.prototype.sortByFrequency = function () { var freq = {}; this.map(function(e, i, a){ if(e in freq){ freq[e]++; } else { freq[e] = 1; }); ... | |
sortByID()var library = [ title: 'The Road Ahead', author: 'Bill Gates', libraryID: 1254 }, title: 'Walter Isaacson', author: 'Steve Jobs', ... | |
sortByID(argument)'use strict'; Array.prototype.sortByID = function(argument){ this.sort(function(x,y){ return x.libraryID > y.libraryID; }); }; var library = [ title: 'The Road Ahead', ... | |
sortByKeysortByKey(key, dsc)Array.prototype.sortByKey = function sortByKey(key, dsc) { return this.sort(function(a, b) { var x = a[key]; var y = b[key]; if (dsc ==='dsc') { return (x === undefined && y === undefined ? 0 : (x < y) || x === undefined ? 1 : ((x > y) || y === undefined ? -1 : 0)); return (x === undefined && y === undefined ? 0 : (x < y) || x === undefined ? -1 : ((x > y) || y === undefined ? 1 : 0)); }); ... |