javascript - 节点js服务器端的多字段输入请求
问题描述
我的前端请求表单请求给我这个
req.body {
name: ["abc","ggg"],
class: ["A","B"],
bloodGroup: ["A+","B-"]
}
我尝试过我的代码来解决这样的问题
let arr = [];
req.body.name.forEach((item, index)=>{
arr.push({
name: item,
class: req.body.class[index],
bloodGroup: req.body.bloodGroup[index]
})
})
return arr;
有没有像动态这样的其他方式,我只会传递我的请求,它会返回这些数据的对象
这是示例 req.body 每个键名、类、bloodGroup ex 中将有多个数据:
name ["a","b","c",...] so on...
class ["ab","bc","dc",...] so on...
bloodGroup ["a+","b+","c-",...] so on...
解决方案
我们可以在请求正文的第一个属性上做一个Array.map。
然后我们在 req.body 上使用Object.entries并将其映射为仅返回每个索引的正确条目。然后我们使用Object.fromEntries()创建每个对象。
这意味着无论 req.body 上有多少属性,它们都会出现在结果对象上。
const req = {
body: {
name: ["abc","ggg", "ccc"],
class: ["A","B", "C"],
bloodGroup: ["A+","B-", "C-"],
height: [175, 182, 190]
}
}
const arr = Object.values(req.body)[0].map((item, index) => {
const entries = Object.entries(req.body).map(([key, properties]) => ([key, properties[index]]));
return Object.fromEntries(entries);
});
console.log(arr);
推荐阅读
- python - 如何在 tkinter 中移动具有相同标签的单独项目?
- python - 我可以在pyqtgraph(pyqt5)中与两个图共享十字准线吗
- ros - 在 Pi 上下载 ROS Indigo - rosinstall_generator:找不到命令?
- laravel - Laravel + October CMS,组合样式表不解释为 CSS
- ios - 如何在 Xcode 中获取 UI 对象
- ansible - 如果不允许 sudo 用户运行任意脚本,Ansible 可以使用“sudo su -”吗?
- google-cloud-composer - 如何读取气流云作曲家存储桶中的文件?
- swift - 在 Swift 中将 IF LET 与 OR 结合
- facebook-graph-api - GoogleBigQuery“找不到表格”/通过 StitchData 集成 Facebook 广告
- react-native - 在 React Native 中聚焦时如何将 TextInput 居中?