Javascript 按两个值降序排列数组中的对象

Javascript 按两个值降序排列数组中的对象,javascript,jquery,html,json,sorting,Javascript,Jquery,Html,Json,Sorting,我正在处理iTunesAPI和从专辑中提取歌曲。我试图根据歌曲的曲目号和它们所属的光盘对歌曲进行分类,但似乎遇到了一些问题。其中一种情况下,光盘的顺序与之相反。第二,它根本就不是按它们应该如何排序。作为第一步,我将尝试对事情进行分类: return a.discNumber - b.discNumber && a.trackNumber - b.trackNumber; 为了让它工作,需要修复什么 伊图内斯研究; 函数调用回调{ $.getJSON'http://itunes

我正在处理iTunesAPI和从专辑中提取歌曲。我试图根据歌曲的曲目号和它们所属的光盘对歌曲进行分类,但似乎遇到了一些问题。其中一种情况下,光盘的顺序与之相反。第二,它根本就不是按它们应该如何排序。作为第一步,我将尝试对事情进行分类:

return a.discNumber - b.discNumber && a.trackNumber - b.trackNumber;
为了让它工作,需要修复什么

伊图内斯研究; 函数调用回调{ $.getJSON'http://itunes.apple.com/search?term=Speakerboxxx/The Love Below&entity=song&callback=?',functiondata{ var结果=数据[结果], tracks=results.filterfunctionentry{ return entry.CollectionExplicity==显式 }, sortedTracks=轨道。SortFunction A,b{ 返回a.discNumber-b.discNumber&&a.trackNumber-b.trackNumber; }; 对于变量i=0;i如果光盘编号已经不同,比较仅检查曲目编号。不是你想要的

尝试:

伊图内斯研究; 函数调用回调{ $.getJSON'http://itunes.apple.com/search?term=Speakerboxxx/The Love Below&entity=song&callback=?',functiondata{ var结果=数据[结果], tracks=results.filterfunctionentry{ return entry.CollectionExplicity==显式 }, sortedTracks=轨道。SortFunction A,b{ 返回a.discNumber-b.discNumber | | a.trackNumber-b.trackNumber; }; 对于变量i=0;i如果光盘编号已经不同,比较仅检查曲目编号。不是你想要的

尝试:

伊图内斯研究; 函数调用回调{ $.getJSON'http://itunes.apple.com/search?term=Speakerboxxx/The Love Below&entity=song&callback=?',functiondata{ var结果=数据[结果], tracks=results.filterfunctionentry{ return entry.CollectionExplicity==显式 }, sortedTracks=轨道。SortFunction A,b{ 返回a.discNumber-b.discNumber | | a.trackNumber-b.trackNumber; }; 对于变量i=0;i
return a.discNumber - b.discNumber || a.trackNumber - b.trackNumber;
用于比较功能,以便仅当光盘编号相等时才比较曲目编号,而不是相反。然后,要按降序排序,只需交换a和b:

要获得递增的光盘,但要使用每个光盘递减的曲目编号

return a.discNumber - b.discNumber || a.trackNumber - b.trackNumber;
用于比较功能,以便仅当光盘编号相等时才比较曲目编号,而不是相反。然后,要按降序排序,只需交换a和b:


要获得递增的光盘,但每个光盘的递减曲目号是正确的。演示:你用很好的代码明确地表达了这个问题@德雷克斯:哈哈,谢谢。这是我第一次尝试从外部API使用JSON,所以很高兴听到这个消息。@Bergi是正确的。演示:你用很好的代码明确地表达了这个问题@德雷克斯:哈哈,谢谢。这是我第一次尝试从外部API使用JSON,听到这个消息很高兴。
return a.discNumber - b.discNumber || b.trackNumber - a.trackNumber;