2014-02-06 2 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

Хорошее решение Thanks –

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; 
} 
Смежные вопросы