2015-12-03 132 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

相关问题