使用Javascript/Jquery根据数组中的键值统计记录数
我需要使用Javascript/Jquery根据键值计算对象数组中存在的记录数。我在下面解释我的代码使用Javascript/Jquery根据数组中的键值统计记录数,javascript,jquery,arrays,object,Javascript,Jquery,Arrays,Object,我需要使用Javascript/Jquery根据键值计算对象数组中存在的记录数。我在下面解释我的代码 var arrResult = [{"name":"jim","amount":34,"date":"11/12/2015"}, {"name":"carl","amount":120.11,"date":"11/12/2015"}, {"name":"jim","amount":45,"date":"12/01/2015"}, {"name":"stacy","amount":12
var arrResult = [{"name":"jim","amount":34,"date":"11/12/2015"},
{"name":"carl","amount":120.11,"date":"11/12/2015"},
{"name":"jim","amount":45,"date":"12/01/2015"},
{"name":"stacy","amount":12.00,"date":"01/04/2016"},
{"name":"stacy","amount":34.10,"date":"01/04/2016"},
{"name":"stacy","amount":44.80,"date":"01/05/2016"}
];
上面是我的对象数组。在这里,我需要根据相同的name
值计算记录的数量,我的预期输出如下所示
var output=[
{"name":"jim","count":2},
{"name":"carl","count":1},
{"name":"stacy","count":3}
]
您可以使用
reduce
:
var arresult=[{“姓名”:“吉姆”,“金额”:34,“日期”:“2015年12月11日”},
{“姓名”:“卡尔”,“金额”:120.11,“日期”:“11/12/2015”},
{“姓名”:“吉姆”,“金额”:45,“日期”:“12/01/2015”},
{“姓名”:“stacy”,“金额”:12.00,“日期”:“2016年4月1日”},
{“姓名”:“stacy”,“金额”:34.10,“日期”:“2016年4月1日”},
{“姓名”:“stacy”,“金额”:44.80,“日期”:“2016年5月1日”}
];
var输出=arrResult.reduce((acc,curr)=>{
如果(!acc.some(({name})=>name==curr.name)){
acc.push({name:curr.name,count:1});
}否则{
acc.find(({name})=>name==curr.name).count++;
}
返回acc;
}, []);
控制台日志(输出)代码>您可以使用combied:
const arrResult=[{“姓名”:“吉姆”,“金额”:34,“日期”:“11/12/2015”},{“姓名”:“卡尔”,“金额”:120.11,“日期”:“11/12/2015”},{“姓名”:“吉姆”,“金额”:45,“日期”:“12/01/2015”},{“姓名”:“stacy”,“金额”:12.00,“日期”:“01/04/2016”},{“姓名”:“stacy”,“金额”:34.10,“日期”:“01/04/2016”},{“姓名”:“stacy”,“金额”:44.80”,“日期”};
常量输出=对象值(arresult.reduce)(a,c)=>{
a[c.name]=a[c.name]?{name:c.name,count:++a[c.name]。count}:{name:c.name,count:1};
返回a;
}, {}));
控制台日志(输出)代码>
作为控制台包装{max height:100%!important;top:0;}
到目前为止您尝试了什么?和的可能重复