javascript - 如何使用 jQuery 将多个 GET 放入一个数组中

标签 javascript jquery arrays

如何将多个 GET 放入一个数组中?

我想首先将所有channelId放入一个数组中,如下所示:

var channel = [ID1, ID2, ID3];

然后是一个带有 $each 的函数...但是怎么做呢? :)

谁能帮帮我?我们将不胜感激

var ItemArray = [];

var d1 = $.get("https://www.googleapis.com/youtube/v3/search?channelId=UCVQ2Z9dNQ2aJJ10f6SgBH0g&type=video&order=date&maxResults=1&part=snippet&KEY",
        function (data) {
            $.each(data.items, function (i, item) {
idee = item.id.videoId;
tittie = item.snippet.title;
cattit = item.snippet.channelTitle;
datie = item.snippet.publishedAt;
ItemArray.push([datie, cattit, idee, tittie]);
            });
        });

var d2 = $.get("https://www.googleapis.com/youtube/v3/search?channelId=UC2xskkQVFEpLcGFnNSLQY0A&type=video&order=date&maxResults=1&part=snippet&KEY",
        function (data) {
            $.each(data.items, function (i, item) {
idee = item.id.videoId;
tittie = item.snippet.title;
cattit = item.snippet.channelTitle;
datie = item.snippet.publishedAt;
ItemArray.push([datie, cattit, idee, tittie]);
            });
        });

var d3 = $.get("https://www.googleapis.com/youtube/v3/search?channelId=UCGHi_s4RrqUh4hsS4mLbiPg&type=video&order=date&maxResults=1&part=snippet&key=KEY",
        function (data) {
            $.each(data.items, function (i, item) {
idee = item.id.videoId;
tittie = item.snippet.title;
cattit = item.snippet.channelTitle;
datie = item.snippet.publishedAt;
ItemArray.push([datie, cattit, idee, tittie]);
            });
        });

$.when(d1, d2, d3).done(function() {

ItemArray.sort(function(a, b) {
        return a[0] - b[0];
});

for(i=0;i<=ItemArray.length;i++){
$('#mytable').append('<tr><td>'+ItemArray[i][0]+'</td><td><a target="_blank" href="https://www.youtube.com/user/'+ItemArray[i][1]+'">'+ItemArray[i][1]+'</a></td><td><a target="_blank" href="https://www.youtube.com/watch?v='+ItemArray[i][2]+'">'+ItemArray[i][3]+'</a></td></tr>');
}
})
})

最佳答案

参见下面的示例。
代码已注释,应该按预期工作。
有问题就问。

(function($) {
    var ItemArray = [];

    // List all IDs here
    var ids = ["UCVQ2Z9dNQ2aJJ10f6SgBH0g", "UC2xskkQVFEpLcGFnNSLQY0A", "UCGHi_s4RrqUh4hsS4mLbiPg"];
    var done = [];

    // Go through all ids
    $.each(ids, function(index, value) {
        // Save all Deferred in variable done
        done.push($.get("https://www.googleapis.com/youtube/v3/search?channelId=" + value + "&type=video&order=date&maxResults=1&part=snippet&KEY", fn)); // use function fn for doing all the time the same
    });

    function fn(data) {
        $.each(data.items, function(i, item) {
            idee = item.id.videoId;
            tittie = item.snippet.title;
            cattit = item.snippet.channelTitle;
            datie = item.snippet.publishedAt;
            ItemArray.push([datie, cattit, idee, tittie]);
        });
    }
	
    // to use an array as input for when()
    // you need th use the prototype method apply to convert it
    $.when.apply($, done).done(function() {

        // this part stays the same
        ItemArray.sort(function(a, b) {
            return a[0] - b[0];
        });

        for (i = 0; i <= ItemArray.length; i++) {
            $('#mytable').append('<tr><td>' + ItemArray[i][0] + '</td><td><a target="_blank" href="https://www.youtube.com/user/' + ItemArray[i][1] + '">' + ItemArray[i][1] + '</a></td><td><a target="_blank" href="https://www.youtube.com/watch?v=' + ItemArray[i][2] + '">' + ItemArray[i][3] + '</a></td></tr>');
        }
    });
})(jQuery);

关于javascript - 如何使用 jQuery 将多个 GET 放入一个数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34996727/

相关文章:

javascript正则表达式替换变量

javascript - 您编写了哪些有用的自定义 jQuery 选择器?

javascript - 中心/裁剪图像 - 使用 Cycle2 插件的响应式幻灯片

jquery - 当图像进入视口(viewport)时延迟加载图像

javascript - Wordpress 外部 api get 请求的延迟加载

javascript - JQuery/javascript 将 div 放置在父 div 的任意位置

javascript - 检测两个动画 div 的碰撞

arrays - 数组条件的和积

ruby - 尝试使用 Ruby while 循环查找字符串的元音

arrays - 合并 UnitMass 和 UnitLength 数组