при создании в цикле for возвращается только последнее значение массива

#javascript #jquery #arrays

#javascript #jquery #массивы

Вопрос:

У меня проблема с этой функцией:

 var url = "";

function multiSearchTest() {
    var formData = $("#frmSearch").serialize();
    var look = new Array("SDO", "AR", "AS", "AC", "AP", "GEMO", "CC");
    var count;

    for(count = 0; count < look.length; count  ){
       url = "index.php?Pageamp;module=mod_pageamp;action=dispatchamp;todo=cerca" look[count] "amp;"   formData;
       console.log(url);
    var test = "#" look[count] "result";

    $.get(url, function(data) {
           $(test).html(data);
           console.log("TEST VAL => "   test);
        });
    }
}
 

Как вы можете видеть, конструкция URL идеальна…но когда я говорю, где печатать выходные данные, он возвращает мне только последнее значение массива. Есть идеи или предложения? В чем моя ошибка?

Комментарии:

1. вы объявили test как переменную, но вы присваиваете ей несколько значений. поэтому сделайте test в виде массива . только тогда он может хранить все эти значения .

Ответ №1:

Объявите var test вне forloop . и сделайте его как массив. var test используйте in for loop каждый раз, когда он создает новый объект, поэтому объявляйте переменную test вне цикла for

  function multiSearchTest() {
        var formData = $("#frmSearch").serialize();
        var look = new Array("SDO", "AR", "AS", "AC", "AP", "GEMO", "CC");
        var count;
    var test = [];

        for(count = 0; count < look.length; count  ){
           url = "index.php?Pageamp;module=mod_pageamp;action=dispatchamp;todo=cerca" look[count] "amp;"   formData;
           console.log(url);
           test[count] = "#" look[count] "result";

        $.get(url, function(data) {
               $(test[count]).html(data);
               console.log("TEST VAL => "   test[count]);
            });
        }
    }
 

Комментарии:

1. Благодаря судхарсану и Амиту 🙂 Проблема решена

2. @AntonioDan — Рад вам помочь