如何操作多数组与对象,提取OrderItem及MenuItem中的目标数据
我需要访问OrderItem数据及其内部嵌套的MenuItem对象,从中提取部分目标数据。
返回的对象结构
{ Order: [ { OrderItem: [Array] } ] }
Order内部结构(order.Order)
[ { OrderItem: [ [Object], [Object], [Object], [Object], [Object], [Object], [Object], [Object], [Object], [Object], [Object], [Object], [Object], [Object], [Object], [Object], [Object], [Object], [Object], [Object], [Object], [Object], [Object], [Object], [Object] ] } ]
OrderItem及内部MenuItem结构
[ { id: 86, price: 180, quantity: 1, menuItemId: 1, orderId: 1, MenuItem: [Object] // 假设MenuItem包含id、name等业务字段 }, { id: 87, price: 135, quantity: 2, menuItemId: 7, orderId: 1, MenuItem: [Object] }, { id: 88, price: 170, quantity: 2, menuItemId: 3, orderId: 1, MenuItem: [Object] }, { id: 89, price: 170, quantity: 3, menuItemId: 3, orderId: 1, MenuItem: [Object] }, // 更多OrderItem对象 ]
提取目标数据的示例代码
假设我们需要提取每个OrderItem的id、price、quantity,以及对应MenuItem的id、name字段,可通过数组遍历实现:
// 假设原始数据为order对象 const order = { Order: [ { OrderItem: [...] } ] }; // 提取目标数据 const extractedData = order.Order[0].OrderItem.map(item => ({ orderItemId: item.id, unitPrice: item.price, buyQuantity: item.quantity, menuId: item.MenuItem.id, menuName: item.MenuItem.name })); console.log(extractedData);
操作说明
- 先通过
order.Order[0]定位到包含OrderItem数组的对象 - 用
map遍历每个OrderItem实例,同时访问嵌套的MenuItem对象提取内部字段 - 最终生成仅包含目标字段的新数组,便于后续业务处理
内容的提问来源于stack exchange,提问作者Qoomit
相关产品推荐
相关产品推荐

