Nodejs Array Sort alphanumSort( caseInsensitive )

Here you can find the source of alphanumSort( caseInsensitive )

Method Source Code

Array.prototype.alphanumSort = function( caseInsensitive ) {

   for ( var z = 0, t; t = this[z]; z++ ) {
      this[z] = [];/*from   ww w  . j  a  v a 2s .c o m*/
      var x = 0, y = -1, n = 0, i, j;
      while (i = ( j = t.charAt( x++ ) ).charCodeAt( 0 ) ) {
         var m = ( i == 46 || ( i >=48 && i <= 57 ) );
         if ( m !== n ) {
            this[z][++y] = "";
            n = m;
         }
         this[z][y] += j;
      }
   }

   this.sort( function( a, b ) {
      for ( var x = 0, aa, bb; ( aa = a[x] ) && ( bb = b[x] ); x++ ) {
         if ( caseInsensitive ) {
            aa = aa.toLowerCase();
            bb = bb.toLowerCase();
         }
         if ( aa !== bb ) {
            var c = Number( aa ), d = Number( bb );
            if ( c == aa && d == bb ) {
               return c - d;
            } else {
               return ( aa > bb ) ? 1 : -1;
            }
         }
      }
      return a.length - b.length;
   } );

   for ( var z = 0; z < this.length; z++ ) {
      this[z] = this[z].join( "" );
   }

}

Related

  1. sortDescending()
    function getLargestPalindrome() {
      products = fillMultiples().sortDescending();
      for (i = 0; i < products.length; i++) {
        if (products[i].toString().isPalindrome()) {
          return products[i];
    function fillMultiples() {
    ...
    
  2. sortNumber(a)
    Array.prototype.sortNumber = function(a) {
      if (a == true) {
        return this.sort(function(d, c) {
          return d - c
        }).reverse()
      } else {
        return this.sort(function(d, c) {
          return d - c
        })
    ...
    
  3. sortObject(field)
    Array.prototype.sortObject = function(field) {
      if (typeof this[0][field] === 'undefined') return this;
      var len = this.length,
        i,
        j,
        flag,
        next,
        temp;
      for (i = 1; i < len; i++) {
    ...
    
  4. sort_text(direction, index)
    Array.prototype.sort_text = function(direction, index) {
        direction = direction === undefined ? 'asc' : direction;
        direction = direction === 'asc' ? 1 : -1;
        this.sort(function(a, b) {
            if (a[index] < b[index]) return -direction;
            if (a[index] > b[index]) return direction;
            return 0;
        })
    };
    ...
    
  5. sort()
    Array.prototype.sort = function(){
      var a = this;
      for(var i = 0;i<a.length-1;i++){
        var t = i;
        for(var j = i+1;j<a.length;j++)
          if(a[t]>a[j])
            t = j;
        if(t!=i)
          this.swap(i,t);
    ...
    
  6. alphanumSort(caseInsensitive)
    Array.prototype.alphanumSort = function(caseInsensitive) {
      for (var z = 0, t; t = this[z]; z++) {
        this[z] = [];
        var x = 0, y = -1, n = 0, i, j;
        while (i = (j = t.charAt(x++)).charCodeAt(0)) {
          var m = (i == 46 || (i >=48 && i <= 57));
          if (m !== n) {
            this[z][++y] = "";
            n = m;
    ...
    
  7. alphanumSort(caseInsensitive)
    Array.prototype.alphanumSort = function(caseInsensitive) {
      for (var z = 0, t; t = this[z]; z++) {
        this[z] = new Array();
        var x = 0, y = -1, n = 0, i, j;
        while (i = (j = t.charAt(x++)).charCodeAt(0)) {
          var m = (i == 46 || (i >=48 && i <= 57));
          if (m !== n) {
            this[z][++y] = "";
            n = m;
    ...
    
  8. ascendSortascendSort()
    'use strict'
    Array.prototype.ascendSort = function ascendSort() {
        return this.sort(function(a, b){
            return a > b ? 1 : a < b ? -1 : 0;
        });
    };
    
  9. asort(key)
    function xsort(sqs,col,order){
        sqs.sort(function(a,b){
            return((a[col]-b[col])*order);
        });
        return(sqs);
    Array.prototype.asort = function(key) {
        this.sort(function(a, b) {
            return (a[key] > b[key]) ? 1 : -1;
    ...