在JS(ES6)中修改发布请求的数据

问题描述 投票:-2回答:1

我希望这不是重复。我必须为请求准备POST数据。预期的工作机构格式如下:

{
    "type": "expense",
    "field_date_cost": {
        "und": [{
            "value": {
                "date": "16/04/2018"
            }
        }]
    },
    "field_amount": {
        "und": [{
            "value": "10"
        }]
    },
    "field_details": {
        "und": [{
            "value": "test"
        }]
    }
}

我的HTTP POST请求现在以这种格式从表单接收数据。

{
  "field_date_cost": "05/03/2018",
  "field_amount": "10",
  "field_details": "test",
  "type": "expense"
}

我正在使用下面的代码(ES6)收集数据。

 const field_date_cost = document.querySelector('#edit-date').value;
 const field_amount = document.querySelector('#edit-amount').value;
 const field_details = document.querySelector('#edit-details').value;
 const id = document.querySelector('#id').value;
 const type = "expense";
 const data = {
     field_date_cost,
     field_amount,
     field_details,
     type
 }
 }

我想修改JS中的每个元素以匹配所需的结构。我试过Array.prototype.map和其他人。

javascript arrays
1个回答
1
投票

只需创建一个具有所需格式的对象,并将变量插入适当的位置:

const field_date_cost = "05/03/2018";
const field_amount = '10';
const field_details = 'test';
const type = "expense";

const body = {
  "type": type,
  "field_date_cost": {
    "und": [{
      "value": {
        "date": field_date_cost
      }
    }]
  },
  "field_amount": {
    "und": [{
      "value": field_amount
    }]
  },
  "field_details": {
    "und": [{
      "value": field_details
    }]
  }
};
console.log(body);
© www.soinside.com 2019 - 2024. All rights reserved.