添加和显示阵列问题

时间:2015-05-10 05:08:30

标签: javascript arrays

var reset = function ()
    {
        var p = parseFloat($("#IA").val());
        var q = parseFloat($("#IB").val());
        var m = parseFloat($("#CGCD").val());
        var aR = [];

        aR += ["GCD(" + p + "," + q + ")=" + m];

        document.getElementById("PGCD").innerHTML = aR + "\n";

        document.getElementById("IA-error").innerHTML="";
        document.getElementById("IB-error").innerHTML="";

        $("#IA").focus();
    };

上述代码仅适用于重置'函数,附加代码的一部分(不存在),目的是找到最大的共同分母,GCD。

我的重置'函数连接到一个按钮#reset,其目的是做四件事:

  1. 将字符串 GCD(p,q)= m 添加并存储到数组' aR' p / q / m是输入文本区域#IA,#IB和#CGCD(#IA和#IB的GCD)的值的可变替换;
  2. 显示阵列' aR'在文本区域#PGCD 每个时间点击重置按钮;这就是我使用数组的原因;
  3. 清除两个输入文本区域#IA和#IB;
  4. 清除一个输出文本区域;
  5. 目前,所有四个目标都已成功完成,但有一个例外:对于第二个目标,仅输出最近的 GCD计算;没有先前的计算输出。

    我无法让数组列出其中的不同已保存计算。我认为(?)新的计算被添加到数组中,但我不确定。

    我已经尝试过' for'声明和“如果'声明,两者都不起作用。我不知道我是否编码错误,或者它是不是我的问题的正确解决方案。

    我试图在论坛(这里)搜索解决方案,但无法找到。

    谢谢。

1 个答案:

答案 0 :(得分:2)

如果我理解您所描述的内容,我相信您的问题是您尝试使用+ =将元素添加到数组中。你应该使用

aR.push("GCD(" + p + "," + q + ")=" + m);

+ =运算符用于向自身添加值以及字符串连接。

编辑:根据下面的评论,主要问题是声明aR作为局部变量。它必须是全局的或在同一范围内声明。