前端瓦达希 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日

悬赏问题

  • ¥15 如何让企业微信机器人实现消息汇总整合
  • ¥50 关于#ui#的问题:做yolov8的ui界面出现的问题
  • ¥15 如何用Python爬取各高校教师公开的教育和工作经历
  • ¥15 TLE9879QXA40 电机驱动
  • ¥20 对于工程问题的非线性数学模型进行线性化
  • ¥15 Mirare PLUS 进行密钥认证?(详解)
  • ¥15 物体双站RCS和其组成阵列后的双站RCS关系验证
  • ¥20 想用ollama做一个自己的AI数据库
  • ¥15 关于qualoth编辑及缝合服装领子的问题解决方案探寻
  • ¥15 请问怎么才能复现这样的图呀