JavaScript使用reduce从数组创建具有计数的对象
我试图解决这个小问题,我需要使用JavaScript使用reduce从数组创建具有计数的对象,javascript,reduce,Javascript,Reduce,我试图解决这个小问题,我需要使用reduce创建一个包含每个项目计数的对象 我想我理解了reduce是如何工作的,使用一个函数将多个值降到一个值,但我不知道这是如何工作的 有什么想法或建议吗?我真的很感激 // var people = ['josh', 'dan', 'sarah', 'joey', 'dan', 'josh', 'francis', 'dean']; // can reduce be used to get: // { // josh: 2, // dan:
reduce
创建一个包含每个项目计数的对象
我想我理解了reduce
是如何工作的,使用一个函数将多个值降到一个值,但我不知道这是如何工作的
有什么想法或建议吗?我真的很感激
// var people = ['josh', 'dan', 'sarah', 'joey', 'dan', 'josh', 'francis', 'dean'];
// can reduce be used to get:
// {
// josh: 2,
// dan: 2,
// sarah: 1,
// joey: 1,
// francis: 1,
// dean: 1
// }
如您所见,需要一个对象作为数组项计数的结果集 为了得到结果,您可以使用默认值零来加一来计算实际值,同时使用给定名称作为属性进行计算
var people=['josh','dan','sarah','joey','dan','josh','francis','dean'],
计数=人。减少(功能(c,p){
c[p]=(c[p]| 0)+1;
返回c;
},Object.create(null));
控制台日志(计数)代码>
工作这是我正在学习的函数式编程课程。我觉得很好。
const groupedByName = people.reduce((obj, person) => {
const count = obj[person] || 0
return { ...obj, [person]: count + 1 }
}, {})