如何解决如何添加从 forEach 获得的值? 反应
JSON 数据:
{ "rows":
[
{
"customer_id": 1,"customer_details":
{
"customer_id": 1,"email":"john@mail.com","first_name":"John","last_name":"Doe","phone":"+123456123"
},"order_items":[
{
"name": "random name","quantity":1
}
]
},{
"customer_id": 2,"customer_details":
{
"customer_id": 2,"email":"johnny@mail.com","first_name":"Johnny","last_name":"Silverhand","quantity":1
},{
"name": "another random name","quantity":1
}
]
}
]
}
我实际上能够获得数量,但是当 order_items
中的数组中有两个或更多对象时,就像客户 2 一样,我得到的是 11
如何添加我的值得到?对不起,如果这真的是一个简单的问题,但我真的很困惑。
function getQuantity(qty) {
if(qty.length === 1) {
return qty[0].quantity;
} else {
let tempArr = [];
qty.forEach(prod => {
// console.log(prod.quantity)
tempArr.push(prod.quantity)
});
return tempArr;
}
}
{orderList.map((val,key) => {
if (val.status_id !== 5) {
return (
<tr key={key} className='text-center'>
<td className='tdata'>{getQuantity(val.order_items)}</td>
解决方法
您的 getQuantity
函数返回一个数字数组(给定此 json 数据),当您将 td
的值设置为(如在您的示例中)时,它将输出 [1,1]
“1”“1”看起来像“11”。
如果你想显示你的值的总和,你可以做这样的事情(虽然可能有更好的方法来对数组中的所有数字求和)
function getQuantity(qty) {
if(qty.length === 1) {
return qty[0].quantity;
} else {
let tempVal = 0;
qty.forEach(prod => {
tempVal += prod.quantity
});
return tempVal;
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。