【发布时间】:2017-02-17 18:52:31
【问题描述】:
我正在尝试编写一个函数,该函数将接收一个数组,然后返回数组中每个对象的频率映射。例如,对于以下数组:
freqs([1, 2, 3, 7, 2, 7, 1, 2, 1])
它将返回如下地图:
Map {1 => 3, 2 => 3, 3 => 1, 7 => 2}
这是我目前所拥有的:
function freqs(items) {
return items.reduce(function(prev, curr)
{
if (curr in prev)
{
prev[curr]++;
}
else
{
prev[curr]=1;
}
return prev.map();
});
}
但是,当我尝试对其进行测试时,我收到以下错误:
未捕获的 TypeError:无法使用 'in' 运算符在 1 中搜索 '1'
这是什么原因造成的?另外,我的逻辑正确吗?我觉得我做错了什么。
【问题讨论】:
标签: javascript arrays dictionary reduce