【问题标题】:Sort array of arrays with string values [JavaScript] [duplicate]使用字符串值对数组进行排序[JavaScript] [重复]
【发布时间】:2021-12-14 15:23:42
【问题描述】:

我遇到了一个悖论,排序数组仅适用于数字或数字字符串值。 示例如下:

const sortArr = (a, b) => a[1] - b[1];

const arr1 = [['two', '2'], ['one', '1'], ['three', '3']];
const arr2 = [['WA', 'Washington'], ['NC', 'North Carolina'], ['PA', 'Pennsylvania']];

let sortedArr1 = arr1.sort(sortArr);
let sortedArr2 = arr2.sort(sortArr);

console.log('sortedArr1', sortedArr1);  // returns sorted array
console.log('sortedArr2', sortedArr2);  // returns original array (not sorting)

有人可以帮助找出正确的方法来正确地按第二个值对 arr2 进行排序吗?谢谢!

【问题讨论】:

  • 输出here中的数组是否正确排序?如果不是,它们应该如何排序?

标签: javascript arrays string sorting


【解决方案1】:

减法仅在您比较数字时用作比较函数。您需要一个适用于数字和字符串的比较函数。

function sortArr(a, b) {
    if (a == b) {
        return 0;
    else if (a < b) {
        return -1;
    } else {
        return 1;
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-11-20
    • 2021-07-13
    • 1970-01-01
    • 2018-02-06
    • 1970-01-01
    • 1970-01-01
    • 2013-03-23
    • 1970-01-01
    相关资源
    最近更新 更多