javascript - 用于计算一长串数字同时排除文本输入的计算器
问题描述
我正在制作一个计算器,它将用于计算数字列表,同时排除文本输入(来自用户)。列表将完全如下所示(每次不同的值除外):
黄金:72,644 灵丹妙药:217,966 黑暗:2 奖杯:-19 搜索:4
黄金:188,643 灵丹妙药:226,899 黑暗:723 奖杯:6 搜索:9
黄金:483,499 灵丹妙药:328,480 黑暗:1,214 奖杯:3 搜索:1
黄金:182,237 灵丹妙药:385,613 黑暗:1,350 奖杯:-19 搜索:5
黄金:504,233 灵丹妙药:494,088 黑暗:357 奖杯:-24 搜索:2
我正在尝试找到一种方法来从该列表中获取特定值,同时仍将其保留在一个列表中<textarea>
. 例如,我想计算所有的“GOLD: x”输入,这样我就可以获得这些数字的列表。
计算不是问题,我只需要知道如何从每个“GOLD:x”输入中导出所有值。从这个列表中,我需要分别获取数字 72.644、188.643、483.499、182.237、504.233 以及 ELEXIR 和 DARK 的值。我的问题是,如何在 javascript 或 html 中实现这一点?
我还没有真正开始尝试任何事情,因为我是一个完全的编码初学者。我知道我可以将它们定义为一个数组,但我不知道如何获取一组信息,其中包括某些标签,例如“GOLD”及其各自的数字。
<textarea id="logInput" rows="14" cols="95" placeholder="Paste log here"></textarea> //This is where the list will be entered
解决方案
您可以获取该值,然后用 & 替换所有新行,' '
然后通过 delimiter 创建一个数组' '
。
遍历这个数组并检查特定的单词 likegold:
因为你需要这个文本后面的值。
function getValue() {
let arr = [];
let val = document.getElementById('logInput').value
.replace(/\n/g, ' ')
.split(' ');
for (let i = 0; i < val.length; i++) {
if (val[i].trim().toLowerCase() === 'gold:') {
arr.push(val[i + 1]);
}
}
console.log(arr)
}
<textarea id="logInput" rows="14" cols="95" placeholder="Paste log here">
GOLD: 72,644 ELIXIR: 217,966 DARK: 2 TROPHIES: -19 SEARCHES: 4
GOLD: 188,643 ELIXIR: 226,899 DARK: 723 TROPHIES: 6 SEARCHES: 9
GOLD: 483,499 ELIXIR: 328,480 DARK: 1,214 TROPHIES: 3 SEARCHES: 1
GOLD: 182,237 ELIXIR: 385,613 DARK: 1,350 TROPHIES: -19 SEARCHES: 5
GOLD: 504,233 ELIXIR: 494,088 DARK: 357 TROPHIES: -24 SEARCHES: 2</textarea>
<button type='button' onclick='getValue()'>Get Value</button>
推荐阅读
- tensorflow - 如何保存 tf.data.Dataset 对象?
- hex - 地址在十六进制中是什么意思?
- google-signin - Goolge 登录卡在加载页面上
- angular - 在 Angular 中,是否可以在运行时创建的元素上应用 MatTooltip?
- linux - MACHINE_EXTRA_RDEPENDS 与 MACHINE_ESSENTIAL_EXTRA_RDEPENDS
- c++ - 在构造函数中创建带有参数的类的数组
- android - android googleMap - 如何添加没有工具提示箭头的信息窗口
- windows - Windows Server 2012 可以通过 mstsc 远程但无法 ping
- angular - 无法读取未定义的属性“显示”。照片浏览器
- c++ - ODBC SQLBindCol() 有错误的指针,但它可以工作。这怎么可能?