2014-02-06 250 views
0

我使用下列函數對數組進行排序。按字母順序排列數組

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}]; 
+1

'.name.toLowerCase()' – leaf

回答

0

試試這個

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

+0

很好的解決謝謝 –

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; 
}