【问题标题】:How to check if an array of string is sorted Ascending/Descending alphabetically?如何检查字符串数组是否按字母升序/降序排序?
【发布时间】:2022-01-10 05:21:50
【问题描述】:

如何检查数组是否按字母顺序升序或降序或未排序。

["apple","summer","sun","zoo"] // ascending

【问题讨论】:

标签: javascript arrays sorting


【解决方案1】:

您可以遍历数组并跟踪所有邻居调用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));

【讨论】:

    【解决方案2】:

    您可以检查该项目与上一个项目或返回true 为第一个项目。

    const
        asc = (b, i, { [i - 1]: a }) => !i || a <= b,
        array = ["apple", "summer", "sun", "zoo"];
    
    console.log(array.every(asc));

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-06
      • 1970-01-01
      • 2023-04-10
      • 2021-03-27
      • 2018-01-14
      • 1970-01-01
      相关资源
      最近更新 更多