Sha256: e4c5fe638ca293bad44c065566e2a890380efd18ac9179943303f17df01bcc20
Contents?: true
Size: 710 Bytes
Versions: 32
Compression:
Stored size: 710 Bytes
Contents
var compare = require('./compare'); function mediator(a, b) { return compare(this, a.converted, b.converted); } module.exports = function (array, opts) { if (!Array.isArray(array) || array.length < 2) { return array; } if (typeof opts !== 'object') { opts = {}; } opts.sign = !!opts.sign; var insensitive = !!opts.insensitive; var result = Array(array.length); var i, max, value; for (i = 0, max = array.length; i < max; i += 1) { value = String(array[i]); result[i] = { value: array[i], converted: insensitive ? value.toLowerCase() : value }; } result.sort(mediator.bind(opts)); for (i = result.length - 1; ~i; i -= 1) { result[i] = result[i].value; } return result; };
Version data entries
32 entries across 31 versions & 11 rubygems