我有一个 ton 变量可供使用,信息在HTML格式之间来回传递。变量必须是全局变量,以便它们可以跨多种功能工作。所以这是列表中的一个样本:
var charDex = 0;
var charEnd = 0;
var charPer = 0;
var charStr = 0;
var charCon = 0;
var charInt = 0;
var charRat = 0;
var charRes = 0;
var charDip = 0;
var charGui = 0;
var charItd = 0;
var charLea = 0;
它们从零开始,数据输入表单,按钮将数据发送到存储数据的JS函数,然后根据所存储的数据将各种信息发送回表单。
现在,我知道我能够通过使用函数中的函数来保存一些重复,这是我迄今为止所做的。但是,这里还有很多事情要做。我想知道的是,是否有一种方法可以使用通配符和/或字符串匹配来自动匹配从表单输入到JS变量的数据?最终结果将起到以下作用:
function updateCharacter(form){
char* = form.c*.value;
racial* = form.r*.value;
mod* = form.m*.value;
total* = char* + racial* + mod*;
form.t*.value = total*;
}
在我的情况下,charDex和form.cDex.value(等等)具有相同的后缀,所以我认为我可以做的事情,我只是不确定我错过了什么。我想过使用带阵列的for循环,但我并不完全确定如何使其工作。
答案 0 :(得分:2)
不用担心!
只需使用对象。
修改:删除' char'以前使用的变量名称,因为它是reserved word。
var chars = {
Dex: "some text",
End: 0,
Per: 2,
Str: 345,
Con: "blah blah",
Int: 0,
Rat: 0,
Res: 0,
Dip: 0,
Gui: 0,
Itd: 0,
Lea: 0
}
您可以使用以下任一选项访问其中的每个值:
chars['Dex']
chars.Dex
其中任何一个都会给你"一些文字"。
要迭代属性,请尝试以下操作:
for (prop in chars) {
console.log( prop ); // this will log the name of the property
console.log( chars[prop] ); // this will log the value
}