【发布时间】:2022-01-10 05:21:50
【问题描述】:
如何检查数组是否按字母顺序升序或降序或未排序。
["apple","summer","sun","zoo"] // ascending
【问题讨论】:
-
这能回答你的问题吗? Sort a string date array
标签: javascript arrays sorting
如何检查数组是否按字母顺序升序或降序或未排序。
["apple","summer","sun","zoo"] // ascending
【问题讨论】:
标签: javascript arrays sorting
您可以遍历数组并跟踪所有邻居调用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));
【讨论】:
您可以检查该项目与上一个项目或返回true 为第一个项目。
const
asc = (b, i, { [i - 1]: a }) => !i || a <= b,
array = ["apple", "summer", "sun", "zoo"];
console.log(array.every(asc));
【讨论】: