所以假設我們確實有這個陣列:
const db = [
{name: 'Coffe', price: '10'},
{name: 'Stackoverflow Stickers', price: '7.5'},
{name: 'Nike Air Force', price: '100'},
// more objects in similar format (long list)
]
所以我想要做的是遍歷陣列并計算每個物件值的所有價格,在這種情況下是價格。
我試過了,但不知何故它不起作用:
let total = 0;
data.map((d) => (d.total = total))
setTotal(totalValues)
uj5u.com熱心網友回復:
你可以為此使用陣列減少
不要忘記在 db data 中決議你的字串
const db = [
{name: 'Coffe', price: '10'},
{name: 'Stackoverflow Stickers', price: '7.5'},
{name: 'Nike Air Force', price: '100'},
]
let total = db.reduce((previous, current) => (previous parseFloat(current.price)), 0)
console.log(total)
uj5u.com熱心網友回復:
您可以使用以下Array.reduce功能:
const total = db.reduce(
(total, curr) => total parseFloat(curr.price),
0
);
setTotal(total);
閱讀更多:https ://www.w3schools.com/jsref/jsref_reduce.asp
uj5u.com熱心網友回復:
嘗試以下更改來解決問題。里面的 map 函式而不是(d) => (d.total = total)use (d) => (total = Number(d.price))。
const data = [
{name: 'Coffe', price: '10'},
{name: 'Stackoverflow Stickers', price: '7.5'},
{name: 'Nike Air Force', price: '100'},
// more objects in similar format (long list)
]
let total = 0;
data.map((d) => (total = Number(d.price)))
console.log(total)
注意:對于此類操作,不要使用 using map、 use或普通回圈。forEach像這樣:
data.forEach((d) => (total = Number(d.price)))
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/446504.html
標籤:javascript
上一篇:在從typescript編譯的代碼中匯入PrismaClient時出錯::export'PrismaClient'notfound
