【问题标题】:Why am I pulling an error? array.push course work为什么我拉一个错误? array.push 课程作业
【发布时间】:2015-06-12 05:27:25
【问题描述】:

本书的页面包含将摄氏度转换为华氏度的 ff 代码,我们被要求重写/简化它。

function convertToCentigrade(degFahren)
{
    var degCent;
    degCent = 5/9 * (degFahren - 32);
    return degCent;
}

var degFahren = new Array(212, 32, -459.15);
var degCent = new Array();
var loopCounter;

for (loopCounter = 0; loopCounter <= 2; loopCounter++)
{
    degCent[loopCounter] = convertToCentigrade(degFahren[loopCounter]);
}

for (loopCounter = 2; loopCounter >= 0; loopCounter-- )
{
    document.write(“Value “ + loopCounter + “ was “ + 
        degFahren[loopCounter] + “ degrees Fahrenheit”);
    document.write(“ which is “ + degCent[loopCounter] + 
        “ degrees centigrade<br />”);
}

我的版本:

var degFar = [212, 32, -459.15];
var degCent = [];
            
function convert(input) {
    result = (5/9 * (input - 32));            
    return result;
}
            
for (i = 0; j = degFar.length; i <= j; i++) {
    degCent.push(convert(degFar[i]));
    document.write(degCent[i]);
}

我拉了一个错误(显然),但我不明白我做错了什么。

【问题讨论】:

  • 你能告诉我们错误是什么吗?
  • 你遇到了什么错误?你用什么语言?你的 for for 语句对我来说看起来很可疑,但我不懂语言,所以我不能确定

标签: arrays


【解决方案1】:

degFar 有 3 个元素,但它的索引从 0 开始。

你的数组是这样的:

[0] 212
[1] 32
[2] -459.15

您正在尝试推送一个不存在的索引 [3]。所以用这个修改你的循环,注意我用i&lt;j替换了i&lt;=j

for (i = 0; j = degFar.length; i < j; i++) {
    degCent.push(convert(degFar[i]));
    document.write(degCent[i]);
}

【讨论】:

    【解决方案2】:

    您的 for 循环导致错误。您尝试使用两个变量,“j”和“i”。我不确定您要通过使用“j”来完成什么(除此之外,您在尝试将其初始化为 degFar.length 之前从未声明过“j”)。

    按照你的逻辑,我会去掉“j”——你不需要它。删除 'j' 并使用 'i' 后,它应该看起来像这样:

    for (i = 0; i < degFar.length; i++) {
     degCent.push(convert(degFar[i]));
     document.write(degCent[i] + "<br>");
    }
    

    希望这会有所帮助。

    【讨论】:

    • 有效。非常感谢。我使用了 j 变量,因为这是在上一个模块中教给我的。我想知道为什么我也不能只做 i
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-25
    • 1970-01-01
    • 2021-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多