首页 > 解决方案 > 我的代码中的回调似乎不起作用,并且在没有应用回调函数的情况下返回结果

问题描述

我写了一个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

为什么会这样?我该如何解决呢?

标签: javascriptfunctioncallback

解决方案


Array.map 不是“变异”方法,因此您应该保存映射值:

array = array.map(callback);


推荐阅读