javascript - 在发送到服务器之前在 JS 中准备对象?
问题描述
我正在尝试准备一个对象以 POST 到我的服务器以存储一些信息。这个对象需要我根据用户选择如何收集 POST 所需的所有信息来执行一些 GET 请求。我意识到我必须修改对象才能真正将它们放入 JSON 中的正确值对,我不确定是否有更好的方法来做到这一点。
我只是以简单的方式展示这一点,但实际有 6-7 个非常长的对象,它们都需要修改并适合一个 JSON。服务器 API 是这样编写的,可以接受输入,我对此没有任何发言权。
例如:我从请求中得到什么
object1: {
id: 1,
name: "table",
price: 3499
}
object2: {
id: 5,
lat: 48.56,
lng: -93.45,
address: "1080 JavaScript Street"
}
我需要它变成什么:
data: {
map_id: 5,
product_id: [1],
product_name: ["table"],
product_price: [3499],
start_lat: 48.56,
start_lng: -93.45,
start_address: "1080 JavaScript Street"
}
到目前为止,我只是用愚蠢的方式将它们缝合在一起,我只是在这里写了这个,所以它不起作用,但应该合乎逻辑地显示我的想法:
prepareDataToSend = (object1, object2) => {
//exclude uninit handling, and newObject init for arrays
let newObject = {};
newObject.map_id = object2.id;
//if there are more of object1 then I have to loop it
newObject.product_id.push(object1.id);
newObject.product_name.push(object1.name);
...etc
}
我确实得到了我正在寻找的结果,但这感觉非常无效和愚蠢。更不用说这似乎非常难以维护。有一个更好的方法吗?我觉得我缺少一些技术。
解决方案
您可以使用 ES6对象解构。
let object1 = {
id: 1,
name: "table",
price: 3499
};
let object2 = {
id: 5,
lat: 48.56,
lng: -93.45,
address: "1080 JavaScript Street"
};
// declaring the new object with the new properties names.
let newObject = {
map_id: '',
product_id: [],
product_name: [],
product_price: [],
start_lat: '',
start_lng: '',
start_address: ''
};
// destructuring "object1"
({id: newObject.product_id[0],
name: newObject.product_name[0],
price: newObject.product_price[0]} = object1);
// destructuring "object2"
({id: newObject.map_id,
lat: newObject.start_lat,
lng: newObject.start_lng,
address: newObject.start_address} = object2);
console.log(newObject)
结果:
{
map_id: 5,
product_id: [1],
product_name: ["table"],
product_price: [3499],
start_address: "1080 JavaScript Street",
start_lat: 48.56,
start_lng: -93.45
}
推荐阅读
- r - 使用 dplyr 将新计算分组到一个数据帧中
- python - 为什么 discord.py 机器人不通过语音聊天播放音频?
- python - Python Tkinter 标签未正确移动
- go - JetBrains GoLand。如何终止程序?
- python - python pdfminer 挂起一些 url。有谁知道为什么?
- amazon-web-services - 从 main.tf 配置创建多个 SQS
- python - Python 模拟返回无效值
- c - 测试设置的多个位
- node.js - npm 错误:404 Not Found 获取 https://registry.npmjs.org/@progress/kendo-charts/-/kendo-charts-1.19.1.tgz
- javascript - 如何使用 graphql 查询空字段?