Javascript 添加数组的值时出现问题。信息是串联的,而不是求和的
我正在创建一个函数,找到可以被3整除的数字,然后将所有这些数字相加。例如,21可以被3、6、9、12、15、18和21整除 然后我想把这些数字加起来,结果是84。我可以将信息获取到数组中,然后循环遍历每个数组元素,但是当我添加它们时,似乎是将数组作为字符串连接起来,而不是添加数字 我试着把变量转换成数字,但我不知道哪里出了问题Javascript 添加数组的值时出现问题。信息是串联的,而不是求和的,javascript,arrays,Javascript,Arrays,我正在创建一个函数,找到可以被3整除的数字,然后将所有这些数字相加。例如,21可以被3、6、9、12、15、18和21整除 然后我想把这些数字加起来,结果是84。我可以将信息获取到数组中,然后循环遍历每个数组元素,但是当我添加它们时,似乎是将数组作为字符串连接起来,而不是添加数字 我试着把变量转换成数字,但我不知道哪里出了问题 document.getElementById(“btn”).addEventListener(“单击”,解决方案); var outPutID=document.ge
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)
thereparseInt
没有意义,因为您已经有了一个整数。什么是值asnumber
?谢谢!我认为更多的是我没有将字符串转换成整数。无奈之下,我添加了parseInt和parseFloat。谢谢你指出这一点。