cómo verificar si una matriz está ordenada ascendente o descendentemente alfabéticamente o sin ordenar.
["apple","summer","sun","zoo"] // ascendingPuede iterar sobre la matriz y realizar un seguimiento de los resultados de String#localeCompare() invocados en todos los vecinos.
Luego, simplemente verifique si todos los resultados son <= 0 o >=0 y devuelva 'ascendente' o 'descendente' en consecuencia; de lo contrario, devuelva 'sin clasificar'.
function getSortDirection(arr) { const c = []; for (let i = 1; i < arr.length; i++) { c.push(arr[i - 1].localeCompare(arr[i])); } if (c.every((n) => n <= 0)) return 'ascending'; if (c.every((n) => n >= 0)) return 'descending'; return 'unsorted'; } const ascending = ['apple', 'summer', 'sun', 'zoo']; const descending = ['zoo', 'sun', 'summer', 'apple']; const unsorted = ['summer', 'zoo', 'apple', 'sun']; console.log(ascending, '–', getSortDirection(ascending)); console.log(descending, '–', getSortDirection(descending)); console.log(unsorted, '–', getSortDirection(unsorted));Puede verificar el elemento con el elemento anterior o devolver true para el primer elemento.
const asc = (b, i, { [i - 1]: a }) => !i || a <= b, array = ["apple", "summer", "sun", "zoo"]; console.log(array.every(asc));