javascript - 我的代码中的回调似乎不起作用,并且在没有应用回调函数的情况下返回结果
问题描述
我写了一个javascript对象'myMath'如下:但是在'mean'函数中,没有调用回调。
const myMath = {
square(x){
return x**2;
},
mean(array, callback){
if(callback){
array.map(callback);
}
const total = array.reduce((acc,x)=>acc+x);
return total/array.length;
}
};
当尝试按如下方式调用函数时,得到的输出是 2,而不是预期的 4.6666...。
myMath.mean([1,2,3],x=>x**2);
<< 2
为什么会这样?我该如何解决呢?
解决方案
Array.map 不是“变异”方法,因此您应该保存映射值:
array = array.map(callback);
推荐阅读
- javascript - JavaScript - 表单提交上的 beforeunload 覆盖
- python - 我无法在 Flask-admin 中更改 is_accessible
- c - C 中带有回调函数的异步 I/O —— I/O 线程究竟何时以及如何返回?
- apiconnect - Assemble 中的编辑值
- php - 如何使用 PHP 检查检查器中的单选按钮值是否未更改?
- elasticsearch - 仅在具有给定字段值的文档中进行 Elasticsearch 更像这种(MLT)查询?
- swiftui - 检测用户是否在 SwiftUI 中点击了屏幕,包括按钮
- command-line - 无法在命令行中更改目录
- python - 是否可以处理带有字符串和数字的矩阵?
- angular - 如何在 Angular 12 中声明一个 formGroup