Javascript 函数式编程
Javascript Functional Programming
我很困惑为什么一个人向我返回总和,而另一个人只是返回列表。
这将正确返回输出10
function sum(){
var arrays = [1,2,3,4].reduce(function (total, num) {
return total + num;
})
console.log(arrays);
}
但是,这将返回 [1, 2, 3, 4]
而不是 10。
function sum(){
var arrays = [1,2,3,4];
arrays.reduce(function (total, num) {
return total + num;
})
console.log(arrays);
}
起初我认为这是我声明var arrays
的地方,所以我尝试将其移出函数,也尝试不将其声明var
。但是对于这个,我仍然没有得到 10。
我没有得到正确的输出,两者之间有什么区别?
谢谢。
您缺少由reduce
返回的作业:
function sum() {
var arrays = [1, 2, 3, 4];
arrays = arrays.reduce(function(total, num) {
//-----^
return total + num;
})
console.log(arrays);
}
在第二个函数中,您将忽略 reduce
方法的返回值。它将正确计算总和,但您不使用它。
将结果分配给变量,如第一个函数所示:
array = arrays.reduce(function (total, num) {
return total + num;
});
但是,如果结果与数组所在的变量相同,则会使代码有些混乱。您应该避免在代码中间使用变量更改含义,以便对结果使用不同的变量:
function sum(){
var arrays = [1,2,3,4];
var result = arrays.reduce(function (total, num) {
return total + num;
});
console.log(result);
}
旁注:术语函数式编程用于基于函数表达式而不是变量状态的语言。仅仅使用函数并不意味着你正在使用函数式编程。
首先,当函数返回值时,即 10
它存储在var arrays
中并且您正在打印它。
而第二,您声明了var arrays
并为其指定值,[1,2,3,4]
然后调用 funtion,返回的值不会存储在任何地方,最后您只需打印[1,2,3,4]
var arrays
相关文章:
- 函数式编程 - 用于递增计数器的简单 for 循环
- 递归函数编程困境
- 以编程方式调用javascript函数
- Javascript - 以编程方式执行所有函数输入的方法
- JavaScript中的延期/承诺概念是一个新的概念,还是函数式编程的传统部分
- 如何获取以编程方式定义nodejs函数的位置
- 函数式编程 - .bind.apply for curry function.
- 函数未以编程方式启动.click()
- 这个javascript是如何工作的,函数式编程
- 面向对象编程和onmousedown函数的问题
- 函数反应式编程(FRP)可以用单子来表达吗?
- Javascript 函数式编程
- 函数式编程问题是JS
- 是否有一组限制可用于模拟JavaScript中的函数式编程
- 在 JavaScript 中以编程方式设置构造函数参数
- 是否可以在不使用 eval() 的情况下以编程方式从字符串或其他技术定义函数
- 谷歌应用脚本以编程方式创建触发器,函数中的参数
- 我如何创建一个函数,以便编程行将等到它完成并移动到 javascript 中的下一行
- 在这种情况下,函数式编程的效率是否较低
- Javascript:以编程方式更改焦点函数