gpt4 book ai didi

javascript - 如何使用 Vue JavaScript 对元素进行分组以添加数组中的数量

转载 作者:行者123 更新时间:2023-11-30 20:01:42 24 4
gpt4 key购买 nike

我有一个从 axios 调用中获得的列表,我尝试创建一个数组,其中具有相同 ID 的产品,增加该产品的数量和小计,否则它们将添加为是的。

但我总是得到 quantity = 1.xx 和一个错误的总数,我不明白为什么或哪里有错误

 let dataGroup = [];


resp.data.forEach((element)=>{
let indexElement = dataGroup.findIndex(elm => {
return (elm.product_id === element.product_id ) && element.print;
});
if(indexElement !== -1){
dataGroup[indexElement].total += parseFloat(element.total);
dataGroup[indexElement].count += parseInt(element.count);
roundNumber(dataGroup[indexElement].count,0);
roundNumber(dataGroup[indexElement].total,2);
}
else{
dataGroup.push(element);
}
});

函数

window.roundNumber = function(num, scale) {
if(!("" + num).includes("e")) {
return +(Math.round(num + "e+" + scale) + "e-" + scale);
} else {
var arr = ("" + num).split("e");
var sig = ""
if(+arr[1] + scale > 0) {
sig = "+";
}
return +(Math.round(+arr[0] + "e" + sig + (+arr[1] + scale)) + "e-" + scale);
}
}

dataGroup 在第一个实例中是空的,一切都根据我从 axios 调用中收到的数据工作,例如在图像中第一行我必须得到 9 的数量但我收到的是 1.00,单位值为 35 ST中应该是9 * 53,但不是这样的

enter image description here

对axios的响应

[
{
"id": 4,
"product_id": 1,
"count": "1.00",
"total": "35.00",
"print": 1
},
{
"id": 5,
"product_id": 1,
"count": "1.00",
"total": "35.00",
"print": 1
},
{
"id": 6,
"product_id": 1,
"count": "1.00",
"total": "35.00",
"print": 1
}
....

最佳答案

这里有一些逻辑问题。检查这个(查看代码中的注释):

resp.data.forEach((element)=>{
let indexElement = dataGroup.findIndex(elm => {
return (elm.product_id === element.product_id ) && element.print;
});
if(indexElement !== -1){
// first convert total/count to float/int then update in existing array element
dataGroup[indexElement].total += roundNumber(parseFloat(element.total), 0);
dataGroup[indexElement].count += roundNumber(parseInt(element.count), 2);
}
else {
// need to convert total/count to float/int then push to dataGroup
element.total = roundNumber(parseFloat(element.total), 0);
element.count = roundNumber(parseInt(element.count), 2);

dataGroup.push(element);
}
});

关于javascript - 如何使用 Vue JavaScript 对元素进行分组以添加数组中的数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53305664/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com