获取&;TypeError: undefined不是一个函数&;用函数式编程
Getting "TypeError: undefined is not a function" with functional programming
我试图使用嵌套函数解决以下问题,因此我要寻找的结果是11,但它是作为countWordsInReduce函数未定义的错误出现的。该函数本身工作得很好,但由于某种原因,当使用它与减少函数我有,有一个问题。有人知道如何在reduce函数中正确使用这个吗?如有任何帮助,不胜感激。
function reduce(array, start, func){
current = start;
for (var i = 0; i < array.length; i++){
current = func(current, array[i]);
}
return current;
}
var countWordsInReduce = function(array, start){
var count = start;
count += array.join(", ").split(" ").length;
return count;
}
word_array = ["hello there this is line 1", "and this is line 2"];
reduce(word_array, 0, countWordsInReduce)
这是我弄乱了一点后得到的工作版本。问题是您将当前数组索引传递给countWordsInReduce函数。
countWordsInReduce
函数实际上应该做的是接受数组的下一个元素作为第一个参数,第二个参数是当前运行的总数。所以第一次调用countWordsInReduce
时,传递的是第一个字符串,运行总数为0。第二次调用时,传递的是第二个字符串,总数为6。然后它会把第二个字符串的长度加进去,结果是11。
所以基本上你的reduce函数是把数组作为一个整体来看,countWordsInReduce函数只是一块一块地处理它。
function reduce(array, start, func) {
var current = start;
for (var i = 0; i < array.length; i++) {
current = func(array[i], current);
}
return current;
}
var countWordsInReduce = function (element, base) {
var count = base;
count += element.split(" ").length;
return count;
};
var word_array = ["hello there this is line 1", "and this is line 2"];
reduce(word_array, 0, countWordsInReduce);
相关文章:
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- 我可以在json对象中添加一个函数吗
- Javascript使函数一个接一个地执行
- 是JavaScript中的函数一个对象
- 两个几乎相等的jQuery函数;一个适用于IE,一个不适用于IE
- 两个Javascript函数一个window.onload=Custom.init;和一个window.onload=f
- 使javascript加载函数一个接一个地执行
- 如何通过两个嵌套的匿名函数(一个带有超时的事件处理程序)传递变量
- 为什么我不能让两个jQuery函数一个在另一个里面呢?
- 给函数一个变量名,而不是它的值
- 如何使用嵌入函数(一个滚动页由Pete - peachananr)
- 是否有可能给JavaScript函数一个类型/类?
- 确保两个函数一个接一个地执行,其中第一个函数内部有一个异步调用
- 两个不同的ajax函数一个接一个调用返回相同的值
- jQuery第一次更改函数一个工作
- 给这个函数一个id
- 如何给回调函数一个值一个变量在特定时刻
- 使用回调使两个函数一个接一个地运行
- 两个函数(一个用php)是否可以用“;onclick”;
- 两个几乎相同的函数.一个函数用Queue进行排队.Jquery效果在queued函数上不起作用.为什么