Javascript 使用JQuery进行Youtube API数组排序

Javascript 使用JQuery进行Youtube API数组排序,javascript,jquery,arrays,get,youtube-api,Javascript,Jquery,Arrays,Get,Youtube Api,我在这段代码中排序结果时遇到了一些问题。每次的结果顺序都是随机的。。。我怎样才能解决这个问题 我想用一个通道ID数组为重复的GET代码创建一个函数。谁能帮我?非常感谢 var ItemArray=[]; 变量d1=$.get(“https://www.googleapis.com/youtube/v3/search?channelId=UCVQ2Z9dNQ2aJJ10f6SgBH0g&type=video&order=date&maxResults=1&part=snippet&KEY", 功

我在这段代码中排序结果时遇到了一些问题。每次的结果顺序都是随机的。。。我怎样才能解决这个问题

我想用一个通道ID数组为重复的GET代码创建一个函数。谁能帮我?非常感谢

var ItemArray=[];
变量d1=$.get(“https://www.googleapis.com/youtube/v3/search?channelId=UCVQ2Z9dNQ2aJJ10f6SgBH0g&type=video&order=date&maxResults=1&part=snippet&KEY",
功能(数据){
$.each(data.items,function(i,item){
idee=item.id.videoId;
titie=item.snippet.title;
cattit=item.snippet.channelTitle;
datie=item.snippet.publishedAt;
推送([datie,cattit,idee,Titie]);
});
});
变量d2=$.get(“https://www.googleapis.com/youtube/v3/search?channelId=UC2xskkQVFEpLcGFnNSLQY0A&type=video&order=date&maxResults=1&part=snippet&KEY",
功能(数据){
$.each(data.items,function(i,item){
idee=item.id.videoId;
titie=item.snippet.title;
cattit=item.snippet.channelTitle;
datie=item.snippet.publishedAt;
推送([datie,cattit,idee,Titie]);
});
});
变量d3=$.get(“https://www.googleapis.com/youtube/v3/search?channelId=UCGHi_s4RrqUh4hsS4mLbiPg&type=video&order=date&maxResults=1&part=snippet&key=KEY",
功能(数据){
$.each(data.items,function(i,item){
idee=item.id.videoId;
titie=item.snippet.title;
cattit=item.snippet.channelTitle;
datie=item.snippet.publishedAt;
推送([datie,cattit,idee,Titie]);
});
});
变量d4=$.get(“https://www.googleapis.com/youtube/v3/search?channelId=UCy5QKpDQC-H3z82Bw6EVFfg&type=video&order=date&maxResults=1&part=snippet&key=key“,
功能(数据){
$.each(data.items,function(i,item){
idee=item.id.videoId;
titie=item.snippet.title;
cattit=item.snippet.channelTitle;
datie=item.snippet.publishedAt;
推送([datie,cattit,idee,Titie]);
});
});
$.when(d1、d2、d3、d4).done(函数(){
排序(函数(a,b){
返回a[0]-b[0];
});
对于(i=0;i根据文档,
publishedAt
以ISO 8601(YYYY-MM-DDThh:MM:ss.sZ)格式返回

由于需要返回一个正数/负数,我会比较毫秒数,即按如下方式存储日期

datie=新日期(item.snippet.publishedAt)

并在排序函数中将其作为

返回a[0].getTime()-b[0].getTime()

根据文档,正在以ISO 8601(YYYY-MM-DDThh:MM:ss.sZ)格式指定的方式返回发布数据

由于需要返回一个正数/负数,我会比较毫秒数,即按如下方式存储日期

datie=新日期(item.snippet.publishedAt)

并在排序函数中将其作为


返回a[0]。getTime()-b[0]。getTime()

我认为问题在于排序功能。根据从youtube获取日期的方式,您可能需要将其转换为Array.prototype.sort要求您返回正数或负数。例如,您是否尝试过类似于
datie=new date之类的操作(item.snippet.publishedAt)
和类似的比较
返回a[0].getTime()-b[0].getTime()
?是的,你说得对。现在可以工作了。谢谢:)我还有一个问题。我想把channeld放在一个数组中,所以我只需要一个get函数。我怎么做?然后在“何时”之后我应该写什么…谢谢..我认为你不能在一个搜索调用中放入多个ChanneID(至少我在YouTube API文档中没有找到任何内容)我已经把我的评论变成了一个答案。如果它有帮助,请考虑接受答案。我认为问题在于你的排序功能。取决于你如何从YouTube获得日期,你可能需要转换它,因为Array.prototype.sort要求你返回正数或负数。例如,你试过做某事吗?like
datie=new Date(item.snippet.publishedAt)
和比较like
返回a[0].getTime()-b[0].getTime()
?是的,你说得对。现在可以工作了,谢谢:)我还有一个问题。我想把channeld放在一个数组中,所以我只需要一个get函数。我怎么做?在“什么时候”之后我应该写什么谢谢。我不认为你可以把多个ChanNiIDS放在搜索电话中(至少我在YouTube API文档中找不到任何东西)。我已经把我的评论变成了一个答案。如果它有帮助,请考虑接受答案。