繁体   English   中英

从文本区域添加输入数字

[英]Add input numbers from textarea

我是JavaScript的新手。。尝试从INPUT TEXTAREA中添加数字,但我只是将数组作为输出。。有人可以纠正错误并给我解决方法。。在此先感谢。

 function arraynum() { var numbers = Array(document.getElementById("sumofnumbers").value); var sumresult = numbers.reduce((a, b) => a + b, 0); document.getElementById("sumresult").innerHTML = sumresult; } 
 <input onblur="arraynum()" type="textarea" id="sumofnumbers"> <p id="sumresult"></p> 

只需在数字之间使用分隔符并根据分隔符进行分割,然后遍历值并获得所需的输出,

我在这里使用,作为分隔符

 function arraynum() { var numbers = document.getElementById("sumofnumbers").value.split(',').filter(Boolean) var sumresult = numbers.reduce((a, b) => a+ (+b),0); document.getElementById("sumresult").innerHTML = sumresult; } 
 <input onblur="arraynum()" type="textarea" id="sumofnumbers"> <p id="sumresult"></p> 

注意: -HTML中的值是字符串,您需要将其强制转换为数字以执行加法运算,否则它将执行字符串连接

您的基本问题在于以下几行:

var numbers = Array(document.getElementById("sumofnumbers").value);

Array()构造函数不会将您的输入转换为字符数组,而是将您的输入文本封装在一个数组中,例如: Array("1,2,3")得到["1,2,3"] ,它不会像您认为的那样提供["1", "2", "3"]

将输入拆分为字符数组的一种简单方法是在格式正确的数组上使用JSON.parse()方法。 如果这样做,那么您的数组将是一个数字数组,而不仅仅是一个元素的数组(即:您的输入字符串)。

 function arraynum() { var numbers = JSON.parse("["+document.getElementById("sumofnumbers").value +"]"); var sumresult = numbers.reduce((a, b) => a + b, 0); document.getElementById("sumresult").textContent = sumresult; // use .textContent instead of .innerHTML as `sumresult` is a text only result } 
 <input onblur="arraynum()" type="textarea" id="sumofnumbers"> <p id="sumresult"></p> 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM