如何檢查陣列是否按字母順序升序或降序或未排序。
["apple","summer","sun","zoo"] // ascending
uj5u.com熱心網友回復:
您可以遍歷陣列并跟蹤String#localeCompare()對所有鄰居呼叫的結果。
然后簡單地檢查所有結果是否為<= 0 或>=0并相應地回傳“升序”或“降序”,否則回傳“未排序”。
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));
uj5u.com熱心網友回復:
您可以使用前一個專案檢查該專案或回傳true第一個專案。
const
asc = (b, i, { [i - 1]: a }) => !i || a <= b,
array = ["apple", "summer", "sun", "zoo"];
console.log(array.every(asc));
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/373431.html
標籤:javascript 数组 排序
