sugar
Version:
A Javascript utility library for working with native objects.
33 lines (29 loc) • 861 B
JavaScript
;
var ARRAY_OPTIONS = require('../var/ARRAY_OPTIONS'),
classChecks = require('../../common/var/classChecks');
var isString = classChecks.isString,
isArray = classChecks.isArray,
_arrayOptions = ARRAY_OPTIONS._arrayOptions;
function compareValue(aVal, bVal) {
var cmp, i, collate;
if (isString(aVal) && isString(bVal)) {
collate = _arrayOptions('sortCollate');
return collate(aVal, bVal);
} else if (isArray(aVal) && isArray(bVal)) {
if (aVal.length < bVal.length) {
return -1;
} else if (aVal.length > bVal.length) {
return 1;
} else {
for(i = 0; i < aVal.length; i++) {
cmp = compareValue(aVal[i], bVal[i]);
if (cmp !== 0) {
return cmp;
}
}
return 0;
}
}
return aVal < bVal ? -1 : aVal > bVal ? 1 : 0;
}
module.exports = compareValue;