2015-12-03 3 views
0

http://jsfiddle.net/dy8w8r7d/Как отсортировать данные json по двум атрибутам

Как отсортировать данные JSON по двум атрибутам? фикцию ниже только сортирует Episode ..

Цель: упорядочить по возрастанию Episode затем по Sequence возрастанию

var data = [ { ArticleId: 2, Episode: 1, Type: 0, Sequence: 0 }, 
    { ArticleId: 1, Episode: 1, Type: 0, Sequence: 1 }, 
    { ArticleId: 3, Episode: 2, Type: 0, Sequence: 0 }, 
    { ArticleId: 4, Episode: 2, Type: 0, Sequence: 1 } ]; 

var data = [ { ArticleId: 2, Episode: 1, Type: 0, Sequence: 1 }, 
 
    { ArticleId: 1, Episode: 2, Type: 0, Sequence: 0 }, 
 
    { ArticleId: 3, Episode: 1, Type: 0, Sequence: 0 }, 
 
    { ArticleId: 4, Episode: 2, Type: 0, Sequence: 1 } ]; 
 

 

 
function compareEpisodeSequence(a,b) { 
 
    if (a.Sequence < b.Sequence) 
 
    return -1; 
 
    if (a.Sequence > b.Sequence) 
 
    return 1; 
 
    return 0; 
 
} 
 
data.sort(compareEpisodeSequence); 
 

 
console.log(data);

+0

Просто выполните сортировку дважды. Сначала сортируйте по последовательности, а в следующий раз сортируйте по эпизоду. – Archer

ответ

1

Это shouls делать то, что вы хотите:

function compareEpisodeSequence(a,b) { 
    if (a.Episode < b.Episode) return -1; 
    if (a.Episode > b.Episode) return 1; 
    if (a.Sequence < b.Sequence) return -1; 
    if (a.Sequence > b.Sequence) return 1; 
    return 0; 
} 

Если Эпизоды равны, вы продолжаете сравнивать Последовательности

+0

Спасибо, что работает !! – user1575921

+1

Рад помочь! Пожалуйста, проверьте ответ правильно! – Vi100

Смежные вопросы