代码之家  ›  专栏  ›  技术社区  ›  kabugh

为购物车中的项目创建负载数组

  •  0
  • kabugh  · 技术社区  · 6 年前

    我有一个系统,允许添加一些项目到购物车[阵列]。物品只是 objects 有了一些数据,我想访问一些特定的 properties 从每个项目创建一个新的 array 有新的 items 带着那些 属性 . 下面提供的代码仅在购物车有一个商品时有效。我想让它在推车的许多项目的工作。如何实现?

    this.cart.forEach((item) => {
      // if cart had only one item it would work
      // I need to somehow create a array that contains `payload object` for each item.
      let payload = {
        name: item.name,
        amount: item.amount,
        price: item.price
      }
      return payload
    })
    
    3 回复  |  直到 6 年前
        1
  •  2
  •   cheekujha    6 年前

    另一种实现方法。

    let payloads = this.cart.map((item) => {
        return {
            name: item.name,
            amount: item.amount,
            price: item.price
        }
    });
    
        2
  •  4
  •   Tom St    6 年前
    let payloads = []; //create array
    
    this.cart.forEach((item) => {
      //push to array
      payloads.push({
        name: item.name,
        amount: item.amount,
        price: item.price
      })
    })
    
    console.log(payloads);
    
        3
  •  1
  •   Andy Mok    6 年前

    你不应该用 forEach 在这种情况下。 forEach公司 对数组的每个项执行回调函数,而不关心函数返回什么。相反,您的函数应该与 map (类似于cheekujha的回答),它用从每个回调返回的元素构造一个新数组。