A small module to check if an Array is sorted.
var sorted = require('is-sorted')
console.log(sorted([3, 1, 2]))
// => false
// supports custom comparators
console.log(sorted([3, 2, 1], function (a, b) { return b - a })
// => true
GitHub
源码
function defaultComparator (a, b) {
return a - b
}
module.exports = function checksort (array, comparator) {
comparator = comparator || defaultComparator
for (var i = 1, length = array.length; i < length; ++i) {
if (comparator(array[i - 1], array[i]) > 0) return false
}
return true
}
思考
默认比较规则是数组元素从小到大,可传入自定义规则。
checksort
函数实现方式很简单,就是依次取出数组中的元素,一旦发现不符合比较规则就返回 false
。