Javascript 我的代码中的回调似乎不起作用,并且在没有应用回调函数的情况下返回结果

Javascript 我的代码中的回调似乎不起作用,并且在没有应用回调函数的情况下返回结果,javascript,function,callback,Javascript,Function,Callback,我编写了一个javascript对象“myMath”,如下所示: 但是在“mean”函数中,没有调用callback const myMath = { square(x){ return x**2; }, mean(array, callback){ if(callback){ array.map(callback); } const tota

我编写了一个javascript对象“myMath”,如下所示: 但是在“mean”函数中,没有调用callback

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
myMath.mean([1,2,3],x=>x**2);
Array.map不是“mutating”方法,因此您应该保存映射值:

array=array.map(回调)

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

array=array.map(回调)

返回一个新数组。这就是你在地图操作后需要处理的问题

const myMath={
正方形(x){
返回x**2;
},
平均值(数组、回调){
让mapped=callback?array.map(callback):数组;
const total=mapped.reduce((acc,x)=>acc+x);
返回总长度/映射长度;
}
};
log(myMath.mean([1,2,3],x=>x**2));
log(myMath.mean([1,2,3])返回一个新数组。这就是你在地图操作后需要处理的问题

const myMath={
正方形(x){
返回x**2;
},
平均值(数组、回调){
让mapped=callback?array.map(callback):数组;
const total=mapped.reduce((acc,x)=>acc+x);
返回总长度/映射长度;
}
};
log(myMath.mean([1,2,3],x=>x**2));

log(myMath.mean([1,2,3])正在调用回调,您只需忽略结果数组,我以为回调没有被调用。现在我明白了。回调正在被调用,你只需忽略结果数组。我以为回调没有被调用。现在我明白了。