【发布时间】:2015-02-20 01:37:19
【问题描述】:
我正在尝试编写一个与 Javascript 中的 countBy 方法相同的 countBy 函数。这是我目前所拥有的:
var array = [1,2,4,4,5];
function countBy(collection, func) {
var object = {} ;
for (var i=0;i<=0; i++) {
for (var key in object) {
if (func(collection[i]) === object.key) {
object.key ++;
} else {
object.key = 1;
}
}
}
return object
}
alert(countBy(array, function(n) {return Math.floor(n);}));
代码打算做的是在集合数组中搜索以查看其中的值是否与对象中的键匹配。如果它在集合数组中找到匹配项,则将该键值加一。如果还没有找到,则创建一个新的键值。因此,应该提醒的结果是:{4:2, 1:1, 2:1, 5:1}。但似乎我的输出是 [object Object]。我做错了什么??
【问题讨论】:
标签: javascript function methods