Javascript 从文本区域添加输入数字
我是JavaScript新手。。 试图从输入文本区域添加数字,但我只是将数组作为输出。。 有人能纠正这个错误并给我解决办法吗。。 提前谢谢Javascript 从文本区域添加输入数字,javascript,html,arrays,Javascript,Html,Arrays,我是JavaScript新手。。 试图从输入文本区域添加数字,但我只是将数组作为输出。。 有人能纠正这个错误并给我解决办法吗。。 提前谢谢 函数arraynum(){ var numbers=数组(document.getElementById(“sumofnumbers”).value); var sumresult=numbers.reduce((a,b)=>a+b,0); document.getElementById(“sumresult”).innerHTML=sumresult;
函数arraynum(){
var numbers=数组(document.getElementById(“sumofnumbers”).value);
var sumresult=numbers.reduce((a,b)=>a+b,0);
document.getElementById(“sumresult”).innerHTML=sumresult;
}
只需在数字之间使用分隔符,并根据分隔符进行拆分,然后循环遍历值并获得所需的输出
这里我使用,
作为分隔符
函数arraynum(){
var numbers=document.getElementById(“sumofnumbers”).value.split(“,”).filter(布尔值)
var sumresult=数字。减少((a,b)=>a+(+b),0);
document.getElementById(“sumresult”).innerHTML=sumresult;
}
您的基本问题在于以下几行:
var numbers = Array(document.getElementById("sumofnumbers").value);
构造函数不会将您的输入转换为一个字符数组,而是将您的输入文本封装在一个数组中,例如:数组(“1,2,3”)
给出[“1,2,3”]
,它不会像您所想的那样给出[“1”、“2”、“3”]
将输入拆分为字符数组的一种简单方法是在格式正确的数组上使用JSON.parse()
方法。如果您这样做,那么您的数组将是一个数字数组,而不仅仅是一个单个元素的数组(即:您的输入字符串)
函数arraynum(){
var numbers=JSON.parse(“[”+document.getElementById(“sumofnumbers”).value+“]);
var sumresult=numbers.reduce((a,b)=>a+b,0);
document.getElementById(“sumresult”).textContent=sumresult;//使用.textContent而不是.innerHTML,因为'sumresult'是纯文本结果
}
嘿,尼克,结果是NaN@ShylendherReddy您好,it productNaN
的输入是什么?我在文本区域中输入了1,2,3,输出是NaNY您需要在,
上拆分,否则1,2,3
将产生[“1”、“,”2”、“,”3”]
,…
将在每个character@ShylendherReddy您好,我以为您的输入是“123”
,我没有意识到它是逗号分隔的。我已经更新了我的代码。非常感谢您,我得到了所需的输出。但是我不理解过滤器(布尔值)的用途@ShylendherReddy要删除falsy
值,假设您有字符串1,,,,2
,因此拆分将返回[1,“,”,2]
@ShylendherReddy总是乐于帮助:),如果有帮助,您可以标记为正确答案:)