📅  最后修改于: 2023-12-03 14:52:44.334000             🧑  作者: Mango
在 JavaScript 中,有多种方式可以检查一个数组是否已排序。下面我们将介绍一些常见的方法。
这是一种基本的方法,通过比较相邻的元素来检查数组是否排序。如果数组未排序,那么肯定会出现相邻的元素不符合排序要求的情况。
function isSorted(arr) {
for (var i = 0; i < arr.length - 1; i++) {
if (arr[i] > arr[i + 1]) {
return false;
}
}
return true;
}
console.log(isSorted([1, 2, 3, 4, 5])); // true
console.log(isSorted([1, 5, 2, 4, 3])); // false
Array.prototype.every()
方法用于测试一个数组中的所有元素是否都通过了指定函数的测试。我们可以使用它来检查一个数组是否已排序。
function isSorted(arr) {
return arr.every((val, i, arr) => !i || arr[i - 1] <= val);
}
console.log(isSorted([1, 2, 3, 4, 5])); // true
console.log(isSorted([1, 5, 2, 4, 3])); // false
Array.prototype.reduce()
方法用于对数组中的每个元素依次执行指定的回调函数,并将结果汇总成单个值。我们可以使用它来检查一个数组是否已排序。
function isSorted(arr) {
return arr.reduce((prev, curr) => prev && curr >= prev);
}
console.log(isSorted([1, 2, 3, 4, 5])); // true
console.log(isSorted([1, 5, 2, 4, 3])); // false
如果您使用的是 lodash 库,那么可以使用它提供的 lodash.isSorted
方法来检查一个数组是否已排序。
var _ = require('lodash');
console.log(_.isSorted([1, 2, 3, 4, 5])); // true
console.log(_.isSorted([1, 5, 2, 4, 3])); // false
以上是几种检查 JavaScript 数组是否已排序的方法,您可以根据自己的需要选择其中一种使用。