使用jquery合并数组

使用jquery合并数组,jquery,json,rest,api,web,Jquery,Json,Rest,Api,Web,我正在调用Web API。它返回来自网站的查询响应是一个JSON响应,包含以下五个字段:页面、每页、总计、总计页面和数据 数据是包含电影信息的JSON对象数组,其中标题字段表示电影的标题 请注意,此字段是分页的,因此为了合并分页,必须进行查询,其中pageNumber是一个整数,表示要查看的页面(例如,1、2等) 我正在尝试将所有电影组合成一个阵列。下面的代码不起作用。你能帮忙吗 <script> $(document).ready(function () {

我正在调用Web API。它返回来自网站的查询响应是一个JSON响应,包含以下五个字段:页面、每页、总计、总计页面和数据

数据是包含电影信息的JSON对象数组,其中标题字段表示电影的标题

请注意,此字段是分页的,因此为了合并分页,必须进行查询,其中pageNumber是一个整数,表示要查看的页面(例如,1、2等)

我正在尝试将所有电影组合成一个阵列。下面的代码不起作用。你能帮忙吗

<script>
    $(document).ready(function () {
        $(function () {
            $("#getPeople").click(function (e) {
                console.log('calling function');
                $.ajax({
                    contentType: 'application/json',
                    type: "GET",
                    url: "https://jsonmock.hackerrank.com/api/movies/search/?Title=spiderman",
                    success: function (data, textStatus, jqXHR) {
                        console.log(data);

                        var totalPages = data.total_pages;
                        console.log(totalPages);


                        var listmovies = data.data;

                        console.log(listmovies.toString());

                        for (var i = 2; i <= totalPages; i++) {
                            console.log('calling loop');
                            $.ajax({
                                contentType: 'application/json',
                                type: "GET",
                                url: "https://jsonmock.hackerrank.com/api/movies/search/?Title=spiderman&page=" + i,
                                success: function (data, textStatus, jqXHR) {
                                     listmovies = [...listmovies, ...data.data];
                                },
                                error: function (jqXHR, textStatus, errorThrown) {
                                    $("#getPeopleResult").val(jqXHR.statusText);
                                }
                            });
                        }

                        console.log(listmovies.length);

                        for (var j = 0; j < listmovies.length; j++) {
                            console.log(listmovies[j].Title);
                        }
                    },
                    error: function (jqXHR, textStatus, errorThrown) {
                        $("#getPeopleResult").val(jqXHR.statusText);
                    }
                });
            });
        });
    });
</script>


  [1]: https://jsonmock.hackerrank.com/api/movies/search/?Title=spiderman

$(文档).ready(函数(){
$(函数(){
$(“#getPeople”)。单击(函数(e){
log(“调用函数”);
$.ajax({
contentType:'应用程序/json',
键入:“获取”,
url:“https://jsonmock.hackerrank.com/api/movies/search/?Title=spiderman",
成功:函数(数据、文本状态、jqXHR){
控制台日志(数据);
var totalPages=data.total_页面;
console.log(totalPages);
var listmovies=data.data;
log(listmovies.toString());

对于(var i=2;i您刚刚被太多的函数调用、循环和日志弄糊涂了。和/或,异步编程,这是AJAX的要点,让您感到困惑。函数实际上要简单得多。下面的代码可以进一步简化/分解为函数进行重构,但我将留给您

至于异步性,我建议您在上阅读更多关于异步编程的内容,或者更好地阅读Kyle Simpson的一本

$(函数(){
$.ajax({
contentType:'应用程序/json',
键入:“获取”,
url:“https://jsonmock.hackerrank.com/api/movies/search/?Title=spiderman",
成功:函数(数据、文本状态、jqXHR){
var totalPages=data.total_页面;
对于(var i=1;i