将来自 FOR 循环的结果存储为一个数组(数组仅单独保存每个结果)

Storing result from FOR loop as one array (array only saves each results separately)

本文关键字:数组 结果 单独 保存 一个 FOR 存储 将来 循环      更新时间:2023-09-26

我尝试过搜索,但找不到任何帮助,也许我的问题太简单了!无论如何,我正在运行一个 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"}]}

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

这是我

的解决方案

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);
        }
    );
}

ajaxfor中取出。这将仅向服务器发送一个 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);
    }
);