Javascript 添加数组的值时出现问题。信息是串联的,而不是求和的

Javascript 添加数组的值时出现问题。信息是串联的,而不是求和的,javascript,arrays,Javascript,Arrays,我正在创建一个函数,找到可以被3整除的数字,然后将所有这些数字相加。例如,21可以被3、6、9、12、15、18和21整除 然后我想把这些数字加起来,结果是84。我可以将信息获取到数组中,然后循环遍历每个数组元素,但是当我添加它们时,似乎是将数组作为字符串连接起来,而不是添加数字 我试着把变量转换成数字,但我不知道哪里出了问题 document.getElementById(“btn”).addEventListener(“单击”,解决方案); var outPutID=document.ge

我正在创建一个函数,找到可以被3整除的数字,然后将所有这些数字相加。例如,21可以被3、6、9、12、15、18和21整除

然后我想把这些数字加起来,结果是84。我可以将信息获取到数组中,然后循环遍历每个数组元素,但是当我添加它们时,似乎是将数组作为字符串连接起来,而不是添加数字

我试着把变量转换成数字,但我不知道哪里出了问题

document.getElementById(“btn”).addEventListener(“单击”,解决方案);
var outPutID=document.getElementById(“outPutID”);
函数解(){
var userInput1=document.getElementById(“userInput1ID”).valueAsNumber;
var myArray=[];
var timesToAdd=parseFloat(userInput1/3);
var rements=parseFloat(userInput1%3);
var total=(userInput1-余数)/3;
对于(i=0;i



代码有几个问题:

  • 您正在对数字使用
    parseFloat
    parseInt
    。没有必要也没有必要这样做,它们已经是数字了
  • 你从来没有声明过
    i
    a
    ,所以代码成了你的牺牲品(这是我贫血小博客上的一篇文章)
…但是的主要问题是
sumArray
从未给出初始值,因此它采用默认值
undefined
。然后在上面使用带有数字的
+=

sumArray += myArray[a];
undefined+anyNumber
NaN
NaN+anyNumber
NaN

您需要在开始时将
0
分配给
sumArray

document.getElementById(“btn”).addEventListener(“单击”,解决方案);
var outPutID=document.getElementById(“outPutID”);
函数解(){
var userInput1=document.getElementById(“userInput1ID”).valueAsNumber;
var myArray=[];
var timesToAdd=用户输入1/3;
var余数=用户输入1%3;
var total=(userInput1-余数)/3;
对于(变量i=0;i



21/6=3.5
那么你能定义
21是可除的吗
因为它也可除4,5,尤其是
7
。看起来,您有一个字符串类型的值,您需要在添加之前转换为数字。顺便说一句,
myArray[i]=parseInt(sum)
there
parseInt
没有意义,因为您已经有了一个整数。什么是
值asnumber
?谢谢!我认为更多的是我没有将字符串转换成整数。无奈之下,我添加了parseInt和parseFloat。谢谢你指出这一点。