Nodejs Utililty Methods Array Sort

List of utility methods to do Array Sort

Description

The list of methods to do Array Sort are organized into topic(s).

Method

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)); 
  });
...