因为只需要数组项,所以可以
$.merge()在重复函数中使用:
function fetchPlaylist(pid, start, items) { items = items || []; start = start || 0; var the_url = 'http://gdata.youtube.com/feeds/api/playlists/' + enpreURIComponent(pid) + '?v=2&alt=jsonc&max-results=50'; $.ajax({ type: "GET", url: the_url, data: { start: start }, dataType: "jsonp", success: function(responseData, textStatus, XMLHttpRequest) { if (responseData.data != null) { if (responseData.data.items) { $.merge(items, responseData.data.items); //add to items if (responseData.data.totalItems > start + 50) { fetchPlaylist(pid, start + 50, items); } else { outputFunction(items); } } else { console.log('No results for playlist: "' + pid + '"'); } } } });}您可以在这里尝试一下,只需使用播放列表ID进行调用即可,如下所示:
fetchPlaylist("84780DAC99E1A285");每次请求完成时,我们都会查看
totalItemsyoutube返回的值是否高于请求的值加50,如果是这种情况,请再次获取并添加这些结果…如果没有,那么我们将合并的数组传递给
outputFunction()。



