Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/424.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中的日期和名称_Javascript_Arrays - Fatal编程技术网

过滤、匹配、计算数组javascript中的日期和名称

过滤、匹配、计算数组javascript中的日期和名称,javascript,arrays,Javascript,Arrays,所以我有这些数据 const data = [ { "employee_name": "Employee A", "commission_date": "14/05/2018", "commission_price": 9000 }, { "employee_name": "Employee A", "commission_date": "17/05/2018", "commission_price": 5000 }, {

所以我有这些数据

const data = [
  {
    "employee_name": "Employee A",
    "commission_date": "14/05/2018",
    "commission_price": 9000
  },
  {
    "employee_name": "Employee A",
    "commission_date": "17/05/2018",
    "commission_price": 5000
  },
  {
    "employee_name": "Employee B",
    "commission_date": "18/05/2018",
    "commission_price": 2000
  },
  {
    "employee_name": "Employee B",
    "commission_date": "18/05/2018",
    "commission_price": 5000
  },
  {
    "employee_name": "Employee B",
    "commission_date": "19/05/2018",
    "commission_price": 500
  }
]
我想根据数据匹配计算
佣金价格
员工姓名
佣金日期

此处,预期输出:

[
  {
    "employee_name": "Employee A",
    "commission_date": "14/05/2018",
    "commission_price": 9000
  },
  {
    "employee_name": "Employee A",
    "commission_date": "17/05/2018",
    "commission_price": 5000
  },
  {
    "employee_name": "Employee B",
    "commission_date": "18/05/2018",
    "commission_price": 7000
  },
  {
    "employee_name": "Employee B",
    "commission_date": "19/05/2018",
    "commission_price": 500
  }
]
我尝试过基于类似问题的答案,但结果仅根据
employee\u name
计算。这是密码

let result = Object.values(data.reduce((r, { employee_name, commission_price }) => {
  r[employee_name] = r[employee_name] || { employee_name, commission_price : 0 }
  r[employee_name].commission_price += commission_price
  return r
}, {}))

谢谢。

您可以使用组合键进行任意数量的组

var数据=[{员工姓名:“员工A”,佣金日期:“2018年5月14日”,佣金价格:9000},{员工姓名:“员工A”,佣金日期:“2018年5月17日”,佣金价格:5000},{员工姓名:“员工B”,佣金日期:“2018年5月18日”,佣金价格:2000},{员工姓名:“员工B”,佣金日期:“2018年5月18日”,佣金价格:5000},{员工姓名:“员工B”,佣金日期:“2018年5月19日”,佣金价格:500},
结果=对象值(数据减少((r,o)=>{
var key=['employee_name','commission_date'].map(k=>o[k]).join('124;');
r[key]=r[key]|{员工姓名:o.employee|u姓名,佣金日期:o.commission|u日期,佣金价格:0};
r[key]。佣金价格+=o.佣金价格;
返回r;
}, {}));
控制台日志(结果)
。作为控制台包装{最大高度:100%!重要;顶部:0;}