英文:
React problem with implementation (two items to one value)
问题
我尝试获得类似购物车的东西,所以值将按数量计算,我已经"修改"了类似这样的东西,但这不起作用:
我将从API响应开始:
"magazyn": [
  {
    "productId": 1,
    "productGUID": "491a8965545a4071bda2811094cf55d1",
    "productSKU": 10,
    "productTitle": "aaaaaa",
    "productCategory": "string",
    "productDescription": "string",
    "productQuantity": 1,
    "productVatRate": 1,
    "productNettoPurchasePrice": 1,
    "productNettoSellingPrice": 1,
    "productNettoSalesMargin": 1,
    "productBruttoSellingPrice": 1,
    "productNettoIncomeValue": 1,
    "productVolume": "Szt"
  },
  {
    "productId": 2,
    "productGUID": "21a63a6a0ff84cb0b1b476284ffe7368",
    "productSKU": 13,
    "productTitle": "absddad",
    "productCategory": "string",
    "productDescription": "string",
    "productQuantity": 2,
    "productVatRate": 2,
    "productNettoPurchasePrice": 2,
    "productNettoSellingPrice": 2,
    "productNettoSalesMargin": 2,
    "productBruttoSellingPrice": 38,
    "productNettoIncomeValue": 2,
    "productVolume": "Szt"
  }
],
"productId": [
  {
    "pcID": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "productId": 1,
    "productQuantity": 5
  },
  {
    "pcID": "6b29fc40-ca47-1067-b31d-00dd010662da",
    "productId": 2,
    "productQuantity": 4
  }
]
{item.productId.map(val => (
 item.magazyn.map((item2) => item2.productBruttoSellingPrice).reduce((previousValue, currentValue2) => {
return previousValue + currentValue2 * val.productQuantity;
}, 0)
))}
我也尝试过以下代码:
{item.productId.map((val) => val.productQuantity).reduce((firstVal, nextVal) => {
 item.magazyn.map((item2) => item2.productBruttoSellingPrice).reduce((previousValue, currentValue2) => {
return previousValue + currentValue2 * val;
}, 0)
},0)
)}
但第一个给出了奇怪的值,例如当结果是30时,这给了我3030,第二次尝试什么也没给出:P
我的问题是,magazyn给我产品价格,但"productId"对象给我一个数量,我想合并它们,就像当productId.productId == magazyn.productId时,productQuantity * productBruttoSellingPrice,并且这将在循环中进行,因为"productId"对象中有不同的项目。
英文:
Im trying to get something like cart, so the values will be counted times quantity, ive "modded" something like this, but this doesnt work:
I will start with the API response:
    "magazyn": [
      {
        "productId": 1,
        "productGUID": "491a8965545a4071bda2811094cf55d1",
        "productSKU": 10,
        "productTitle": "aaaaaa",
        "productCategory": "string",
        "productDescription": "string",
        "productQuantity": 1,
        "productVatRate": 1,
        "productNettoPurchasePrice": 1,
        "productNettoSellingPrice": 1,
        "productNettoSalesMargin": 1,
        "productBruttoSellingPrice": 1,
        "productNettoIncomeValue": 1,
        "productVolume": "Szt"
      },
      {
        "productId": 2,
        "productGUID": "21a63a6a0ff84cb0b1b476284ffe7368",
        "productSKU": 13,
        "productTitle": "absddad",
        "productCategory": "string",
        "productDescription": "string",
        "productQuantity": 2,
        "productVatRate": 2,
        "productNettoPurchasePrice": 2,
        "productNettoSellingPrice": 2,
        "productNettoSalesMargin": 2,
        "productBruttoSellingPrice": 38,
        "productNettoIncomeValue": 2,
        "productVolume": "Szt"
      }
    ],
    "productId": [
      {
        "pcID": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
        "productId": 1,
        "productQuantity": 5
      },
      {
        "pcID": "6b29fc40-ca47-1067-b31d-00dd010662da",
        "productId": 2,
        "productQuantity": 4
      }
    ]
{item.productId.map(val => (
 item.magazyn.map((item2) => item2.productBruttoSellingPrice).reduce((previousValue, currentValue2) => {
return previousValue + currentValue2 * val.productQuantity;
}, 0)
))}
I also tried with
{item.productId.map((val) => val.productQuantity).reduce(firstVal, nextVal) => {
 item.magazyn.map((item2) => item2.productBruttoSellingPrice).reduce((previousValue, currentValue2) => {
return previousValue + currentValue2 * val;
}, 0)
},0)
)}
But the first one gives weird values like, for example when the result is 30 this gives me 3030, the second attempt is gives nothing ![]()
my problem is that, the magazyn give me the product price, but the "productId" object gives me a quantity, i want to merge it like when productId.productId == magazyn.productId then productQuantity * productBruttoSellingPrice and this one will be in the loop because we have different items in "productId" object.
答案1
得分: 1
你能尝试一下以下内容吗?我会解释你的期望吗?
const magazyn = [...item.magazyn];
const productId = [...item.productId];
let sum = 0;
magazyn.forEach((value1) => {
  productId.forEach((value2) => {
    if (value1.productId === value2.productId){
        sum= sum + 
value1.productBruttoSellingPrice * 
value2.productQuantity
    } 
  });
});
console.log(sum);
英文:
Could you try the following? Do I interpret what you are expecting?
const magazyn = [...item.magazyn];
const productId = [...item.productId];
let sum = 0;
magazyn.forEach((value1) => {
  productId.forEach((value2) => {
    if (value1.productId === value2.productId){
        sum= sum + 
value1.productBruttoSellingPrice * 
value2.productQuantity
    } 
  });
});
console.log(sum);
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。


评论