按字母顺序排序数组

时间:2014-02-06 18:19:58

标签: jquery arrays sorting

我使用以下函数来排序数组。

var trArr = [{'Abc', 1}, {'ACd', 3}, {'Aab', 4}];

function compare(a,b) {
          if (a.name > b.name)
          {
              return -1;
          }
          if (a.name < b.name)
          {
              return 1;
          }

          return 0;
}

trArr.sort(compare);

结果:

[{'ACd', 3}, {'Aab', 4}, {'Abc', 1}];

以上结果是由于资本'C'

我需要以下结果:

[{'Aab', 4}, {'Abc', 1}, {'ACd', 3}];

2 个答案:

答案 0 :(得分:1)

试试这个

var trArr = [{
    name: 'Abc',
    id: 1
}, {
    name: 'ACd',
    id: 3
}, {
    name: 'Aab',
    id: 4
}];

function compare(a, b) {
    if (a.name.toLowerCase() < b.name.toLowerCase()) {
        return -1;
    }
    if (a.name.toLowerCase() > b.name.toLowerCase()) {
        return 1;
    }
    return 0;
}

trArr.sort(compare);
console.log(trArr)

DEMO

答案 1 :(得分:0)

尝试使用toLowerCase

function compare(a, b) {
    if (a.name.toLowerCase() > b.name.toLowerCase()) {
        return -1;
    }
    if (a.name.toLowerCase() < b.name.toLowerCase()) {
        return 1;
    }
    return 0;
}