Checks if a numeric array is sorted.
direction
for the first pair of adjacent array elements.0
if the given array is empty, only has one element or the direction
changes for any pair of adjacent array elements.Math.sign()
to covert the final value of direction
to -1
(descending order) or 1
(ascending order).const isSorted = arr => {
if (arr.length <= 1) return 0;
const direction = arr[1] - arr[0];
for (let i = 2; i < arr.length; i++) {
if ((arr[i] - arr[i - 1]) * direction < 0) return 0;
}
return Math.sign(direction);
};
isSorted([0, 1, 2, 2]); // 1
isSorted([4, 3, 2]); // -1
isSorted([4, 3, 5]); // 0
isSorted([4]); // 0
JavaScript, Array
Performs stable sorting of an array, preserving the initial indexes of items when their values are the same.
JavaScript, Array
Finds the highest index at which a value should be inserted into an array in order to maintain its sort order, based on a provided iterator function.
JavaScript, Array
Sorts an array of objects, ordered by a property, based on the array of orders provided.