jquery 尝试在回发前向三维数组添加更多索引

lstz6jyr  于 2023-10-17  发布在  jQuery
关注(0)|答案(1)|浏览(91)

嗨,所以我试图根据具有“已更改”数据集的元素来创建一个动态的数据请求数据数组。
我已经设法添加了额外的索引,但它只是添加了最后一个。我必须推每一个。我只是不知道我错过了什么。

let payload = {
    UpdateID: {
        Table: `newton_manual_loads`,
        Code: `nml`,
        Rows: {},
        Where: `nml_id = ` + LoadID
    }
};

let Changed = $(`[data-changed='true']`);
Changed.each(function (ix, element) {
      let id = $(element).attr(`id`);
      let value = $(element).val();

      payload.UpdateID.Rows = { [id]: value };

      console.log(id + `:` + value);
});
console.log(payload);

payload = JSON.stringify(payload);
$.ajax(`/libraries/ajax/Update.ajax.php`, {
    type: `POST`,
    data: { payload: payload },
    success: function (data) {
        /*rest of code*/
});

这段代码的输出是

Row:{}的输出需要是

Rows: {
          nml_pod_number:20
          nml_loading_gross_weight:600
          nml_loading_nett_weight:15
}
ve7v8dk2

ve7v8dk21#

但它只是添加了最后一个
每次迭代覆盖相同的值:

payload.UpdateID.Rows = { [id]: value };

所有先前的值都丢失了。您可以通过在分配中包含以前的值来保留它们:

payload.UpdateID.Rows = { ...payload.UpdateID.Rows, [id]: value };

或者,不赋值,只添加属性:

payload.UpdateID.Rows[id] = value;

相关问题