将FOR循环的结果存储为一个数组(数组仅分别保存每个结果)

时间:2015-06-15 05:19:39

标签: javascript jquery arrays ajax

我试过搜索但找不到任何帮助,也许我的问题太简单了!无论如何,我正在运行ajax请求。给请求的数据是一个数组。这是我的代码:

var id = "1#2#3#4#5#";
var chkdId = id.slice(0, -1);
var arr = chkdId.split('#');
var checkedId = '';
var chkdLen = arr.length;
for (var i = 0; i < chkdLen; i++) {
    checkedId = arr[i];
    var checkedId = checkedId;
    var data = {};
    var year = $('#year').val();
    data["year"] = year;
    data['type'] = "report";
    data['accidentId'] = checkedId;
    console.log(data);
    ajax.readData('/report/readreport', data, null,
        function (result) {
            console.log(result);
        },
        function (error) {
            alert('err ' + error);
        }
    );

}

请求数组:

Object {year:"2015" type: "report", accidentId: "1"}
Object {year:"2015" type: "report", accidentId: "2"}
Object {year:"2015" type: "report", accidentId: "3"}
Object {year:"2015" type: "report", accidentId: "4"}
Object {year:"2015" type: "report", accidentId: "5"}

结果:

{"data":[{"name":aaaa,"age":"15"}]}
{"data":[{"name":bbb,"age":"25"}]}
{"data":[{"name":ccc,"age":"65"}]}
{"data":[{"name":ddd,"age":"45"}]}
{"data":[{"name":eee,"age":"24"}]}

如何将结果存储在单个数组中?

2 个答案:

答案 0 :(得分:2)

这是我的Solution

var id = "1#2#3#4#5#";
var chkdId = id.slice(0, -1);
console.log(chkdId);
var arr = chkdId.split('#');
var checkedId = '';
var chkdLen = arr.length;

// here is the array
var arrayWithResults = [];

for (var i = 0; i < chkdLen; i++) {
    checkedId = arr[i];
    var checkedId = checkedId;
    var data = {};
    var year = $('#year').val();
    data["year"] = year;
    data['type'] = "report";
    data['accidentId'] = checkedId;
    console.log(data);
    ajax.readData('/report/readreport', data, null,
        function (result) {
            console.log(result);

            // here you push in the requested data
            arrayWithResults.push(result);
        },
        function (error) {
            alert('err ' + error);
        }
    );
}

答案 1 :(得分:1)

ajax中取出for。这将仅向服务器发送一个 ajax请求,并最大限度地减少服务器上的负载。

var params = [];
for (var i = 0; i < chkdLen; i++) {
    checkedId = arr[i];
    var data = {};
    var year = $('#year').val();
    data["year"] = year;
    data['type'] = "report";
    data['accidentId'] = checkedId;


    params.push(data);
    // ^^^^^^^^^^^^^^
}

ajax.readData('/report/readreport', params, null,
//                                  ^^^^^^
    function (result) {
        console.log(result);
    },
    function (error) {
        alert('err ' + error);
    }
);