Grid Sort
Sorting on grid fields
by harsh dand
JavaScript
function objSort() {
var args = arguments,
array = args[0],
case_sensitive, keys_length, key, desc, a, b, i;
if (typeof arguments[arguments.length - 1] === 'boolean') {
case_sensitive = arguments[arguments.length - 1];
keys_length = arguments.length - 1;
} else {
case_sensitive = false;
keys_length = arguments.length;
}
return array.sort(function (obj1, obj2) {
for (i = 1; i < keys_length; i++) {
key = args[i];
if (typeof key !== 'string') {
desc = key[1];
key = key[0];
a = obj1[args[i][0]];
b = obj2[args[i][0]];
} else {
desc = false;
a = obj1[args[i]];
b = obj2[args[i]];
}
if (case_sensitive === false && typeof a === 'string') {
a = a.toLowerCase();
b = b.toLowerCase();
}
if (!desc) {
if (a < b) return -1;
if (a > b) return 1;
} else {
if (a > b) return -1;
if (a < b) return 1;
}
}
return 0;
});
}
function arraySort(data, cfg) {
var fields = cfg.fields;
var sortedData = data.sort(function (obj1, obj2) {
if (cfg.caseSensitive) {
for (var i in fields) {
console.log('cool');
debugger;
var a = obj1[fields[i].name];
var b = obj2[fields[i].name];
var desc = fields[i].descend ? true : false;
if (cfg.caseSensitive && typeof a == 'string') {
a = a.toLowerCase();
b = b.toLowerCase();
}
if (!desc) {
if (a < b) return -1;
...