前端瓦达希 2023-09-12 23:19 采纳率: 0%
浏览 2

遍历订单商品数据,将其push到新定义的数组里

从后端获取订单数据后,将其遍历到我新定义的数组里面,却把所有订单的商品push到一个订单里了,怎么解决

  • 写回答

2条回答 默认 最新

  • 专家-赤兔[在线] 优质创作者: 编程框架技术领域 2023-09-13 00:51
    关注

    引用 皆我百晓生 小程序回复内容作答:
    如果你希望按订单区分商品,并将其分别推送到对应的订单数组中,你可以使用一个对象来跟踪每个订单及其商品。以下是一个示例的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,并取出每个订单的orderIdproductIdproductName。然后,检查是否已经存在该订单的orderId键,如果存在,则将商品推送到该订单的products数组中;如果不存在,则创建该订单,并将第一个商品推送到该订单的products数组中。

    最终,你将得到一个包含每个订单及其对应商品的orders对象。你可以根据订单的orderId作为键来获取对应的商品数组。

    评论

报告相同问题?

问题事件

  • 创建了问题 9月12日