Files
30-seconds-of-code/snippets/isArraySorted.md
Angelos Chalaris dfa58fb351 Add isArraySorted
2018-01-01 19:26:52 +02:00

734 B

functionName

Returns 1 if the array is sorted in ascending order, -1 if it is sorted in descending order or 0 if it is not sorted.

Calculate the ordering direction for the first two elements. Use Object.entries() to loop over array objects and compare them in pairs. Return 0 if the direction changes or the direction if the last element is reached.

const isArraySorted = 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;
}
isArraySorted([0,1,2,3]) // 1
isArraySorted([0,1,2,2]) // 1
isArraySorted([4,3,2]) // -1
isArraySorted([4,3,5]) // 0