let list = Object.values(data.barcodeList) // 元素数组赋值给变量
let dataInfo = {}; //第一一个空对象存储数据
list.forEach((item, index) => { //数组循环
let {
materialCode
} = item; // 提取其中的某个属性作为关键字
// console.log(item)
if (!dataInfo[materialCode]) { //判断对象中是否包含这个关键字
dataInfo[materialCode] = { //对象中添加这个关键值和添加子数组(存原有的数据)
materialCode,
child: []
}
}
dataInfo[materialCode].child.push(item) //对象中的子数组添加数据
dataInfo[materialCode].total = dataInfo[materialCode].child.reduce((pre, cur) => { //按照某个数据进行汇总统计
// console.log(pre, cur)
return pre + cur.currentQty; // currentQty原有数组中需要汇总的数据字段值,现在存在子数组中
}, 0)
});
data.list = Object.values(dataInfo); //将对象转换为数组赋值给变量
console.log(data.list)
js将数组中的对象按照某个属性进行分组排序统计
于 2023-11-27 16:36:25 首次发布