res_data下可能有一个或多个,如下面这个是两个的,下标为第0和第1
res_data.forEach(item=>{
if (item.goods_list.length > 0) {
item.goods_list.forEach(subItem => {
this.overall += subItem.quantity
})
}
})
data.reduce((value, item) => {
return value + data.goods_list.reduce((value2, item2) => {
return value2 + item2.quantity;
}, 0);
}, 0);
其他对象里面的 quantity 值都是>0 的吗?
你这里只循环了res_data没有循环good_list
得用两个for嵌套遍历,你用一个forEach只能循环到第一层数组,goods_list里面并没有做循环
var overall = 0;
for (let i = 0; i < res_data.length; i++) {
for (let j = 0; j < res_data[i].length; j++) {
overall += goods_list[j].quantity;
}
}
复制就可以直接用了,数组reduce方法天然就是做累加的
this.overall = res_data.reduce((prev, curr) => {
return prev + curr.goods_list.reduce((prev2, curr2) => {
return prev2 + curr2.quantity
}, 0)
}, 0)