w3resource

JavaScript: Return 1 if the array is sorted in ascending order, -1 if it is sorted in descending order or 0 if it is not sorted

JavaScript fundamental (ES6 Syntax): Exercise-188 with Solution

Write a JavaScript program that returns 1 if the array is sorted in ascending order. It returns -1 if it is sorted in descending order or 0 if it is not sorted.

  • Calculate the ordering direction for the first pair of adjacent array elements.
  • Return 0 if the given array is empty, only has one element or the direction changes for any pair of adjacent array elements.
  • Use Math.sign() to covert the final value of direction to -1 (descending order) or 1 (ascending order).

Sample Solution:

JavaScript Code:

// Define a function 'isSorted' that checks if the array 'arr' is sorted in either ascending or descending order
const isSorted = arr => {
  // Determine the initial direction of sorting by comparing the first two elements
  let direction = -(arr[0] - arr[1]);

  // Iterate over each element in the array
  for (let [i, val] of arr.entries()) {
    // If the direction is not set (0), calculate the direction based on the previous elements
    direction = !direction ? -(arr[i - 1] - arr[i]) : direction;

    // If it's the last element in the array, return 0 if the array is sorted, otherwise return the direction
    if (i === arr.length - 1) return !direction ? 0 : direction;
    // If the current element and the next one violate the sorting order, return 0
    else if ((val - arr[i + 1]) * direction > 0) return 0;
  }
};

// Test cases to check if arrays are sorted
console.log(isSorted([0, 1, 2, 2])); // 1 (ascending order)
console.log(isSorted([4, 3, 2])); // -1 (descending order)
console.log(isSorted([4, 3, 5])); // 0 (not sorted)

Output:

1
-1
0

Visual Presentation:

JavaScript Fundamental: Return 1 if the array is sorted in ascending order, -1 if it is sorted in descending order or 0 if it is not sorted.
JavaScript Fundamental: Return 1 if the array is sorted in ascending order, -1 if it is sorted in descending order or 0 if it is not sorted.
JavaScript Fundamental: Return 1 if the array is sorted in ascending order, -1 if it is sorted in descending order or 0 if it is not sorted.

Flowchart:

flowchart: Return 1 if the array is sorted in ascending order, -1 if it is sorted in descending order or 0 if it is not sorted

Live Demo:

See the Pen javascript-basic-exercise-188-1 by w3resource (@w3resource) on CodePen.


Improve this sample solution and post your code through Disqus

Previous: Write a JavaScript program to check if the given argument is a string.
Next: Write a JavaScript program that will return true if an object looks like a Promise, false otherwise.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.



Become a Patron!

Follow us on Facebook and Twitter for latest update.

It will be nice if you may share this link in any developer community or anywhere else, from where other developers may find this content. Thanks.

https://www.w3resource.com/javascript-exercises/fundamental/javascript-fundamental-exercise-188.php