簡體   English   中英

具有回調功能的Javascript無法正常工作

[英]Javascript with callback function not working

這是我的JavaScript程序,它應該在代碼底部輸出警告語句,但不適用。 為什么?

//function mean
function mean(values, callback) {
    var total = 0;
    for (var i = 0, max = values.length; i < max; i++) {
        if (typeof callback === "function") {
            total += callback(value[i]);
        } else {
            total += values[i];
        }
    }
}

var result = mean([2, 5, 7, 11, 4], function (x) {
    return 2 * x;
});

alert("The result mean is " + result + ".");

您需要返回total並將value更改為values

 function mean(values, callback) { var total = 0; for (var i = 0, max = values.length; i < max; i++) { if (typeof callback === "function") { total += callback(values[i]); } else { total += values[i]; } } return total; } var result = mean([2, 5, 7, 11, 4], function (x) { return 2 * x; }); alert("The result mean is " + result + "."); 

您可以使用更緊湊的方式重寫代碼:

 function mean(values, callback) { callback = callback || function (x) { return x; }; return values.reduce(function (r, a) { return r + callback(a); }, 0); } var result = mean([2, 5, 7, 11, 4], function (x) { return 2 * x; }); alert("The result mean is " + result + "."); 

以及Pointy提到的錯別字,如果我沒看錯,您永遠不會從均值中返回值,請嘗試返回合計

您必須在回調函數中返回total,並確保沒有將values變量鍵入為value。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM