📜  如何在javascript中检查数组是否排序(1)

📅  最后修改于: 2023-12-03 14:52:44.334000             🧑  作者: Mango

在 Javascript 中检查数组是否排序

在 JavaScript 中,有多种方式可以检查一个数组是否已排序。下面我们将介绍一些常见的方法。

1. 比较相邻元素

这是一种基本的方法,通过比较相邻的元素来检查数组是否排序。如果数组未排序,那么肯定会出现相邻的元素不符合排序要求的情况。

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
2. 使用 Array.prototype.every() 方法

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
3. 使用 Array.prototype.reduce() 方法

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
4. 使用 lodash 库的方法

如果您使用的是 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 数组是否已排序的方法,您可以根据自己的需要选择其中一种使用。