javascript - 我的问题是关于在 Javascript 中将文本框值存储在数组中并将它们求和
问题描述
我的问题是创建一个网页,允许用户一次提供一个数字或以逗号分隔列表的形式向您的程序提供数字。用户将通过按下按钮提交每个或一组数字。用户可以根据需要多次按下该按钮。
我在 html 和 javscript 中做过,但 Dnt 知道如何从用逗号分隔的文本框中接受多个值到 javascript 中。
解决方案
从一个空数组开始存储所有数字,然后使用 javascript 字符串函数 split 添加它们。
var numbers = [];
var btn = document.querySelector("button"); //or any other way to select your button
var txt = document.querySelector("input"); //or any other way to select your text input
btn.addEventListener('click', addNumbersToArray, {passive: true});
function addNumbersToArray() {
let values = txt.value;
if (values.length == 0) return; //no data to process
if (values.indexOf(',') == -1) { //only one value
let num = Number(values);
if (!isNaN(num)) { //check to make sure it's a number
numbers.push(num); //add it to the numbers list
}
} else { //more than one value
let nums = values.split(','); //this splits your string into an array
let numsArr = nums.map((n)=>{ return Number(n) }); //turn them into a number
let numsArr2 = nums.filter((n)=>{ return !isNaN(n) }); //filter out non-numbers
numbers.concat(nums2Arr); //concatenate the new array to the previous numbers array
/* COULD JUST BE ONE CALL
let nums = values.split(",")
.map((n)=>{ return Number(n) })
.filter((n)=>{ return !isNaN(n) });
numbers.concat(nums);
*/
}
processNumbers();
}
function processNumbers() {
//DO SOMETHING WITH YOUR NUMBERS ARRAY
}
绝对有改进的余地,但我试图尽可能详细,这样你就有了拼图的部分来配置你想要的方式,你可以跳过 indexOf 运算符,只使用 values.split(",") 它将返回无论如何只有一个数字的数组。由于您要求 1 或数字列表,因此我试图将其包含在它们中只是为了完整性和清晰性。
推荐阅读
- python - MultiValueDictKeyError at /login/ "uname,
- mysql - SQL | 查找具有相似列字符串的记录?
- chromium - 为什么桌面 chrome 只支持 Widevine CDM 安全级别 L3?
- django - 从 HTTPS 服务器访问 HTTP 内容 || HTTP 请求被阻止
- asp.net - Azure 处理自定义 HTTP 401
- sql-server-2008-r2 - 为联合中的组创建唯一标识符
- c - 为什么没有字符被渲染
- sql-server - Openrowset 批量文件访问被拒绝
- python - 如何在 Discord.py 中获取消息的时间戳?
- unix - 在 unix 下向 Azure IoT Hub 发送消息时出现 TLS 身份验证错误