[英]Stuck on creating a function that will return objects
嗨,我想知道我能否在这里得到一些帮助,所以我陷入了困境。 我正在尝试创建一个直方图函数,该函数采用类似['a','a','b','c','b','a']的数组并返回{a:3,b:2,c :1}使用reduce函数构建直方图函数。 但是我对回调函数应该是什么感到困惑。
感谢您的任何答复。
尝试遍历数组并相应地填充/增加对象的值,
var x = ['a', 'a', 'b', 'c', 'b', 'a'];
var y = {};
x.forEach(function(itm){
y[itm] = ++y[itm] || 1;
});
您可以像这样减少数组:
['a', 'a', 'b', 'c', 'b', 'a'].reduce(function(obj, value) {
obj[value] = obj[value] || 0;
obj[value]++;
return obj;
}, {});
如果您的环境支持Object.assign()和ES6,则还可以执行以下操作:
['a', 'a', 'b', 'c', 'b', 'a']
.reduce((a, b) => Object.assign(a, {[b]: a[b] ? ++a[b] : 1}), {});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.