繁体   English   中英

坚持创建将返回对象的函数

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM