我正在上codecademy.com类(class),其中包含编写下方的calculateTotal函数的说明。当我单击运行时,它将返回NaN。任何人都知道我编写的calculateTotal函数出了什么问题,使它返回NaN。请注意,我知道NaN并非数字...

// runner times
var carlos = [9.6,10.6,11.2,10.3,11.5];
var liu = [10.6,11.2,9.4,12.3,10.1];
var timothy = [12.2,11.8,12.5,10.9,11.1];

// declare your function calculateTotal here
var calculateTotal = function(raceTimes){
    var totalTime;
    for(i = 0; i < raceTimes.length; i++){
        totalTime += raceTimes[i];
        return totalTime;
    }
};

var liuTotal = calculateTotal(liu);

console.log(liuTotal);

请注意,许多回答此问题的人都说var totalTime必须设置为“O”。但是,在下一个代码类(class)中,作者编写了一个函数,其totalTime未设置为任何值,并且可以正常工作
var calculateAverage = function (raceTimes) {
  var totalTime;
  for ( i = 0; i < raceTimes.length; i++ ) {
    totalTime = (totalTime || 0) + raceTimes[i];
  }
// assign variable averageTime
var averageTime = totalTime / raceTimes.length;

  return averageTime;
};

最佳答案

两个问题:

  • totalTime未定义-向NaN中添加未定义结果
  • 您正在循环内返回。

  • 固定:
    var totalTime=0;
    for(i = 0; i < raceTimes.length; i++){
        totalTime += raceTimes[i];
    }
    return totalTime;
    

    09-15 13:30