如何通过两个属性对json数据进行排序

时间:2015-12-03 11:27:11

标签: javascript arrays json sorting

http://jsfiddle.net/dy8w8r7d/

如何按两个属性对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);

1 个答案:

答案 0 :(得分:1)

这样做可以做你想做的事:

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

如果剧集相等,则继续比较序列