isSorted - 是否为排序数组

优质
小牛编辑
122浏览
2023-12-01

如果数组按升序排序,则返回 1 ;如果按降序排列则返回-1 ;如果未排序则返回0

计算前两个元素的排序方向 direction 。 使用 Object.entries() 来循环使用数组对象并对它们进行比较。 如果 direction 改变,则返回 0 ,如果直到最后一个元素, direction 没有改变,则返回 direction

const isSorted = arr => {
  const direction = arr[0] > arr[1] ? -1 : 1;
  for (let [i, val] of arr.entries())
    if (i === arr.length - 1) return direction;
    else if ((val - arr[i + 1]) * direction > 0) return 0;
};
isSorted([0, 1, 2, 2]); // 1
isSorted([4, 3, 2]); // -1
isSorted([4, 3, 5]); // 0