Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript array.reduce()在多个参数上使用索引_Javascript - Fatal编程技术网

Javascript array.reduce()在多个参数上使用索引

Javascript array.reduce()在多个参数上使用索引,javascript,Javascript,我有一个包含4列的SQL:销售人员|姓名|销售|目标|月份 “目标”列每个月都有一个唯一的值,“销售”列是该月的销售总额 使用jQuery,我将这些值放入3个不同的数组中: 当我筛选x个月的数据集时,我有x个销售值和x个销售员目标值。我需要将这些值减少为每个销售人员的唯一销售额和唯一目标值(累积值) 我在JavaScript上尝试过类似的方法: 我的感觉是这样的: console.log(“dataObjSales”,dataObjSales); dataObjSales {…} ​

我有一个包含4列的SQL:销售人员|姓名|销售|目标|月份

  • “目标”列每个月都有一个唯一的值,“销售”列是该月的销售总额

  • 使用jQuery,我将这些值放入3个不同的数组中:

    • 当我筛选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;iconsole.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;iconsole.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 { … }