function srt(on,descending) { on = on && on.constructor === Object ? on : {}; return function(a,b){ if (on.string || on.key) { a = on.key ? a[on.key] : a; a = on.string ? String(a).toLowerCase() : a; b = on.key ? b[on.key] : b; b = on.string ? String(b).toLowerCase() : b; if (on.key && (!b || !a)) { return !a && !b ? 1 : !a ? 1 : -1; } } return descending ? ~~(on.string ? b.localeCompare(a) : a < b) : ~~(on.string ? a.localeCompare(b) : a > b); }; } 'a,z,x,y,a,b,B,Z,a,i,j,y'.split(',').sort( srt({string:true;}) ); [100,7,8,2,2,0,5,1,6,5,-1].sort( srt() ); [100,7,8,2,2,0,5,1,6,5,-1].sort( srt({},true}) ); var objarr = [ {name:'bob', artist:'rudy'} ,{name:'Johhny', artist:'drusko'} ,{name:'Tiff', artist:'needell'} ,{name:'top', artist:'gear'}] .sort( srt({key:'name',string:true}, true) ); for (var i=0;i<objarr.length;i+=1) { console.log(objarr[i].name); }
|