reactjs - 从反应中的对象数组(状态)计算总量(数量*价格)的最佳方法是什么?
问题描述
我有一个对象数组作为我的初始状态
const [product,setProduct]=useState([
{
id:1,
product_title:"Item 1",
quantity:2,
price:100.00
},
{
id:2,
product_title:"Item 2",
quantity:3,
price:300.00
},
])
在这里,我还添加了更多项目,同时,我想根据对象中每个项目的数量*价格计算总金额。现在我正在使用 map() 函数,如下面的代码,我得到了确切的结果
const countTotal=(items)=>
{
var total=0;
product.map(item=>total+=item.quantity*item.price)
setTotal(total)
}
现在我的问题是它是否是一个好的过程,或者是否有比这个过程更好和标准的替代方法。
解决方案
您使用的.map
方法不正确,您应该使用 reduce 方法,像这样
`const total = product.reduce((prev, cur) => {
return prev + cur.quantity * cur.price;
}, 0);`
推荐阅读
- node.js - 无法添加到 JSON 对象以进行数据存储
- liferay-7.2 - Liferay 跨站点复制布局内容类型
- angular - 如何在Angular的一组迭代JSON输出中迭代一个数组?
- concourse - Concourse CI 中的资源类型:如果 Check 总是只返回最新版本会怎样?
- azure - 将模型部署到 Kubernetes
- django - docker 容器上的 Django 在生产服务器中返回 localhost 作为域
- python - Python 将原始 GMT 转换为其他时区,例如 SGT
- html - 极高的元素故障
- mysql - 加载数据本地 INFILE 错误 2068 (HY000)
- here-api - 这里 Map Api 使用 Retrofit 获取调用