JSFiddle - React, Tailwind, and code Playground

by Laurel Bruggeman

HTML

<script src="http://underscorejs.org/underscore-min.js"></script>
<div id="result"></div>

JavaScript

var array = [{ name: 'Aa'}, 
             { name: 'A'}, 
             { name: 'aA'}, 
             { name: 'a'},
             { name: 'aa'}, 
             { name: null}, 
             { name: 'AA'},
             { name: 'AAa'}, 
             { name: 'aa'}, 
             { name: 'Aa'}, 
             { name: 'aA'}, 
             { name: 'aaa'}, 
             { name: 'AaA'}, 
             { name: 'AAA'}, 
             { name: 'aaA'}, 
             { name: 'AA'},
             { name: 'V'},
             { name: 'b'},
             { name: 'B'},
             { name: 'Bb'},
             { name: 'BB'},
             { name: '123'},
             { name: 'aaa'}];
        

sortRows();



function sortRows(sortProperty) {
    $("#result").text('');
    
var reverseCase = function(str){
		if(!str) return ''
    var output = '';
    var code = '';
    
    for(var i=0,len=str.length-1; i<=len; i++){
        code = str.charCodeAt(i);
        if(code >= 65 && code <= 90){
            output+=str.charAt(i).toLowerCase();
        }else if(code >=97 && code <= 122){
            output+=str.charAt(i).toUpperCase();
        }else{
            output+=str.charAt(i);
        }
    }
    return output;
}
         
    var sorted = array.sort(function (a, b) {
    	return (reverseCase(a.name).localeCompare(reverseCase(b.name), 'en', {'sensitivity': 'case'}))
    });

    _.each(sorted, function (el) {
        $("<div>").text(el.name).appendTo($('#result'));
    });
}