过滤、匹配、计算数组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;}