Javascript array.reduce()在多个参数上使用索引
我有一个包含4列的SQL:销售人员|姓名|销售|目标|月份Javascript array.reduce()在多个参数上使用索引,javascript,Javascript,我有一个包含4列的SQL:销售人员|姓名|销售|目标|月份 “目标”列每个月都有一个唯一的值,“销售”列是该月的销售总额 使用jQuery,我将这些值放入3个不同的数组中: 当我筛选x个月的数据集时,我有x个销售值和x个销售员目标值。我需要将这些值减少为每个销售人员的唯一销售额和唯一目标值(累积值) 我在JavaScript上尝试过类似的方法: 我的感觉是这样的: console.log(“dataObjSales”,dataObjSales); dataObjSales {…}
- 当我筛选x个月的数据集时,我有x个销售值和x个销售员目标值。我需要将这些值减少为每个销售人员的唯一销售额和唯一目标值(累积值)
- 我在JavaScript上尝试过类似的方法:
- 我的感觉是这样的:
console.log(“dataObjSales”,dataObjSales);
dataObjSales
{…}
“推销员1”:1650574.98
“推销员2”:829888.27
“推销员3”:1186831.46
“推销员3”:1342287.91
“推销员4”:3185057.64
“推销员5”:387644.28
“推销员6”:2262157.5
:对象{…}
- 我需要将其转换为具有3个属性的对象:Obj.saller、Obj.sales和Obj.goals。我能把它放到第一个房间吗?或者我可以将这2个reduces和saller_name数组转换为一个具有3个属性的对象吗
- 我相信你可以很好地利用
地图
:
const arraySalesperson=[“约翰”、“爱丽丝”、“鲍勃”、“约翰”、“约翰”、“爱丽丝”];
常数arraySales=[100420,138,89,74,86];
常数arrayGoals=[1,2,3,4,5,6];
//创建地图
const resultsBySalesperson=new Map();
//浏览销售人员名单
for(设i=0;i console.info([…resultsBySalesperson.entries()])代码>我相信你可以充分利用地图
:
const arraySalesperson=[“约翰”、“爱丽丝”、“鲍勃”、“约翰”、“约翰”、“爱丽丝”];
常数arraySales=[100420,138,89,74,86];
常数arrayGoals=[1,2,3,4,5,6];
//创建地图
const resultsBySalesperson=new Map();
//浏览销售人员名单
for(设i=0;i console.info([…resultsBySalesperson.entries()])你能画出结果应该是什么样子吗?你能画出结果应该是什么样子吗?
$(resultset).each(function (i, el) {
arraySalesman.push(el.salesman_name);
arraySales.push(el.sales);
arrayGoal.push(el.goal);
});
var dataObjSales = arraySalesman.reduce((t, c, i) => (t[c] = (t[c] || 0) + arraySales[i], t), {});
var dataObjGoal = arraySalesman.reduce((t, c, i) => (t[c] = (t[c] || 0) + arrayGoal[i], t), {});
console.log("dataObjSales", dataObjSales);
dataObjSales
{…}
"Salesman1": 1650574.98
"Salesman2": 829888.27
"Salesman3": 1186831.46
"Salesman3": 1342287.91
"Salesman4": 3185057.64
"Salesman5": 387644.28
"Salesman6": 2262157.5
<prototype>: Object { … }