我想顯示金額 122 的值,但我不知道該怎么做。
我有這個價值
const products = [
{
id: 1,
productM: [
{
product: {
productId: 1222,
price: {
currency: 'EUR',
amount: 122,
},
},
},
],
label: 'corner-1',
sourceId: 23333,
},
]
我試過這個功能,但它不起作用,我不知道該怎么做
function getTotalPrice(products) {
const arr = products.map((product) =>
product.productM.map((p) => p.price.amount)
);
return arr.reduce(
(accumulator, product) => accumulator product,
0
);
}
如果有人可以提供幫助,非常感謝
uj5u.com熱心網友回復:
我認為這會奏效,你認為那p是產品,但實際上p是整個物件,試試這個:
function getTotalPrice(products) {
const arr = products.map((product) =>
product.productM.reduce(
(total, { product }) => total product.price.amount,
0
)
);
return arr.reduce((accumulator, product) => accumulator product, 0);
}
ProductM 是一個陣列,所以我將其從 map 更改為 reduce,以總結其中的所有 productsM 價格
uj5u.com熱心網友回復:
而不是map和reduce。您只能使用reduce。
由于products嵌套了一層,您可以使用reduce兩次來完成它。
像這樣嘗試。
function getTotalPrice(products) {
return products.reduce((prev, curr) => {
return (
prev
curr.productM.reduce((innerPrev, innerCurr) => {
return innerPrev innerCurr.product.price.amount;
}, 0)
);
}, 0);
}
uj5u.com熱心網友回復:
你不需要映射任何東西,你可以直接在原始陣列上減少:
function getTotalPrice(products) {
return products.reduce((acc, p) => acc p.productM.product.price.amount, 0);
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/366758.html
標籤:javascript 算法
上一篇:無法加載“PHP電子郵件表單”庫
下一篇:繪制決策樹
