我可以用一个数组在javascript中制作一个直方图吗,例如:array = [1, 2, 2];结果:1: *
2: **我试过这个:array.reduce((acum,cur) => Object.assign(acum,{[cur]: (acum[cur] | 0)+1}),{});我的结果:{1: 1, 2: 2}谢谢
1 回答

largeQ
TA贡献2039条经验 获得超8个赞
您需要一个逻辑 OR||(而不是按位 OR|)。
var array = [1, 2, 2],
result = array.reduce((acum, cur) => ({ ...acum, [cur]: (acum[cur] || 0) + 1 }), {});
console.log(result);
如果你喜欢拿'*'而不是计数,你可以加星。
var array = [1, 2, 2],
result = array.reduce((acum, cur) => ({ ...acum, [cur]: (acum[cur] || '') + '*' }), {});
console.log(result);
添加回答
举报
0/150
提交
取消