开发者问题收集

如何访问 forEach Javascript 中的对象

2019-03-26
51

我想要访问名为 productData 的对象及其属性,并将其推送到名为 lookingArray 的数组中。如何访问 productData?

saveProductToRecent = () => {
this.props.data.forEach(element => {
  const productData = {
    productImg: JSON.parse(element.node.product.mediaUrl).images[0],
    productPrice: element.node.product.minimalPrice,
    productName: element.node.product.name,
    productOID: element.node.product.oid
  }
});

let lookedArray = []
lookedArray.push()
localStorage.setItem('items', lookedArray)
}
3个回答

您只需要在 forEach 循环内将 productData 推送到 lookedArray 即可

saveProductToRecent = () => {
    let lookedArray = [];

    this.props.data.forEach(element => {
      const productData = {
        productImg: JSON.parse(element.node.product.mediaUrl).images[0],
        productPrice: element.node.product.minimalPrice,
        productName: element.node.product.name,
        productOID: element.node.product.oid
      }
      lookedArray.push(productData);
    });

    localStorage.setItem('items', lookedArray)
}
Shubham Khatri
2019-03-26

将推送语句移到 forEach 内部,并在 forEach 之前声明 lookedArray

let lookedArray = []
saveProductToRecent = () => {
this.props.data.forEach(element => {
  const productData = {
    productImg: JSON.parse(element.node.product.mediaUrl).images[0],
    productPrice: element.node.product.minimalPrice,
    productName: element.node.product.name,
    productOID: element.node.product.oid
  }
  lookedArray.push(productData);
});

localStorage.setItem('items', lookedArray)
}
Tarun Dugar
2019-03-26

或者,您可以使用不可变的方法来利用 .map 来简化工作。

saveProductToRecent = () => {
  const lookedArray = this.props.data.map(element => ({
    productImg: JSON.parse(element.node.product.mediaUrl).images[0],
    productPrice: element.node.product.minimalPrice,
    productName: element.node.product.name,
    productOID: element.node.product.oid
  });

  localStorage.setItem('items', lookedArray)
}
I Putu Yoga Permana
2019-03-26