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