从后端获取订单数据后,将其遍历到我新定义的数组里面,却把所有订单的商品push到一个订单里了,怎么解决
2条回答 默认 最新
关注引用 皆我百晓生 小程序回复内容作答:
如果你希望按订单区分商品,并将其分别推送到对应的订单数组中,你可以使用一个对象来跟踪每个订单及其商品。以下是一个示例的JavaScript代码:// 从后端获取的订单数据 const ordersData = [ { orderId: 1, productId: 10, productName: "Product A" }, { orderId: 1, productId: 11, productName: "Product B" }, { orderId: 2, productId: 20, productName: "Product C" }, { orderId: 2, productId: 21, productName: "Product D" }, ]; // 定义一个空对象用于保存订单及其商品 const orders = {}; // 遍历订单数据 ordersData.forEach((order) => { const { orderId, productId, productName } = order; // 如果订单已存在,则将商品推送到该订单的商品数组中 if (orders[orderId]) { orders[orderId].products.push({ productId, productName }); } // 如果订单不存在,则创建该订单,并推送第一个商品到商品数组中 else { orders[orderId] = { id: orderId, products: [{ productId, productName }] }; } }); // 打印结果 console.log(orders);此示例中,我们使用
orders对象来跟踪每个订单及其商品。首先,遍历订单数据数组ordersData,并取出每个订单的orderId、productId和productName。然后,检查是否已经存在该订单的orderId键,如果存在,则将商品推送到该订单的products数组中;如果不存在,则创建该订单,并将第一个商品推送到该订单的products数组中。最终,你将得到一个包含每个订单及其对应商品的
orders对象。你可以根据订单的orderId作为键来获取对应的商品数组。解决 无用评论 打赏 举报