【发布时间】:2017-05-05 00:01:07
【问题描述】:
var atLeast = function (tab,n,k){
var frequencyK = tab.reduce(function (acc, val, array){
if (val == k){
return acc+1;
}
});
return frequencyK >= n;
};
console.log(atLeast([1,2,3,2,2,4,2,2],4,2));
如果参数k 在数组tab 中重复至少n 次,此函数将返回true。为此,我使用了 reduce,每次当前值等于 k 时,累加器就增加 1。然后我将使用reduce函数计算的k的频率与n进行了比较。
问题是频率K 最终是NaN。我不知道为什么会这样。
【问题讨论】:
-
因为你在 else 子句的 reduce 中没有返回
-
如果
val != k怎么办?那么回调返回什么?那么acc会是什么?
标签: javascript arrays reduce