如何使用JavaScript编写方法来判断数组是否是等差数列?

22 min read

可以使用如下代码判断一个数组是否为等差数组:

function isArithmeticArray(arr) {
  if (arr.length < 2) { // 数组长度不足2个元素,肯定不是等差数组
    return false;
  }

  // 计算公差
  let d = arr[1] - arr[0];

  // 遍历数组,两两判断差值是否为d
  for (let i = 1; i < arr.length - 1; i++) {
    if (arr[i + 1] - arr[i] !== d) {
      return false; // 差值不相等,不是等差数组
    }
  }

  return true; // 差值相等,是等差数组
}

使用方法:

const arr1 = [1, 2, 3, 4, 5]; // 等差数组
const arr2 = [1, 3, 5, 7, 9]; // 等差数组
const arr3 = [1, 2, 4, 8]; // 不是等差数组

console.log(isArithmeticArray(arr1)); // true
console.log(isArithmeticArray(arr2)); // true
console.log(isArithmeticArray(arr3)); // false