arrays - 映射传入的 JSON
问题描述
我有这个传入的 json 响应
"orders": [
{
"items": ["Mie goreng", "Ayam bakar"],
"qty": ["2", "1"],
"order_time": "17:30"
},
]
我想把它映射成这样:
"orders": [
{
"items": [
{item: "Mie goreng", qty: "2"},
{item: "Ayam bakar", qty: "1"},
],
"order_time": "17:30"
},
]
基本上我想将项目和数量映射到数组对象中
解决方案
您可以映射到orders
数组上,然后在这些迭代中映射到items
数组上。Array#map
将迭代索引作为第二个参数,可以帮助找到迭代项的数量。例如,类似:
const input = {
"orders": [
{
"items": ["Mie goreng", "Ayam bakar"],
"qty": ["2", "1"],
"order_time": "17:30"
},
]
};
const output = {
orders: input.orders.map((order) => ({
items: order.items.map((item, index) => ({
item,
qty: order.qty[index]
})),
order_time: order.order_time
}))
};
推荐阅读
- ios - 候选人具有“明显匹配类型”的非匹配类型
- react-native - 样式单选按钮
- azure-devops - 如何同步 Azure DevOps Pipeline Stage 的运行?
- ios - 按下按钮时,用户默认在 TableView 中保存单元格
- episerver - 在 EpiServer 中使用预先输入创建多选
- merge - 使用一个栅格图层和一个 shapefile(多边形)计算面积
- algorithm - 二部图中的匹配算法
- postgresql - Postgres:只能超级用户和所有者进行备份/转储吗?
- java - Spring Security Annotation @EnableWebSecurity 在 Spring MVC 项目中不起作用
- javascript - Ajax POST 请求有时会在 chrome 中发送空数据