js for-loop代码在调用之前打印

时间:2015-04-16 10:03:59

标签: javascript html function for-loop undefined

我是一个新的Javascript编码器,这是我的第一个问题。

我有以下代码:

  1. 从名为celsius
  2. 的变量中获取每个值
  3. 将该值传递给名为calculate的函数并将其转换为 华氏温度。
  4. 华氏的价值被带回第一个 功能然后打印到第一个功能
  5. function calculate() {  
        var celsius = [12, 45, 99, -40];
        
        for (i=0 ; i<celsius.length; i++) {
            document.write("The value is " + celsius[i] + " and is equal to " + count(celsius[i]) + "<br>")
        }
    }
    
    function count(num) {
        var degfarhen = 9/5 * parseFloat(num) + 32;
        degfarhen = degfarhen.toFixed(1);
        document.write(degfarhen)
    }

    但发生了这种情况

    53.6The value is 12 and is equal to undefined
    113.0The value is 45 and is equal to undefined
    210.2The value is 99 and is equal to undefined
    -40.0The value is -40 and is equal to undefined

    在句子之前打印华氏度的值,并且实际上必须打印的位置未定义。

2 个答案:

答案 0 :(得分:4)

在函数count内,您正在调用document.write(),它将立即写入文档。

因为在另一个document.write内部(在for循环中)调用它,内部的将在外部之前写入。你已经看到&#34; undefined&#34;因为函数没有返回值。

您需要做的是return degfarhen结尾count而不是document.write-ing ..

function count(num) {
  // calculation remains the same
  return degfarhen; 
}

答案 1 :(得分:0)

document.write(degfarhen)更改为return degfarhen;