我正在加载一个外部javascript文件,该文件只填充带有int或字符串或booleans或数组的变量。有点像...
varBool=false;
var1="var1";
var2="var2:";
var3="var3";
anothervar3="anotehr var 3";
var5="var5";
testvar2="test var 2";
var7="var7";
var8="var8";
myvar34="myvar 34";
var10="var 10:";
morevars2="more vars!";
morevarshere="more vars here.";
morevars5="more vars.";
morevarsthere="more vars there";
myarray=new Array(1);
myarray[0]="d";
anotherarray=new Array(5);
anotherarray[0]="value 1";
anotherarray[1]="value 2";
anotherarray[2]="value 3";
anotherarray[3]="value 4";
anotherarray[4]="value 5";
我已经通过访问变量名本身来阅读有关从父JS访问这些变量的一些问题。但是每次加载新的JS时,我正在加载的文件将具有不同的值集。是否可以动态获取值而无需指定确切的var名称?
谢谢!
答案 0 :(得分:1)
创建一个JSON对象来代替存储数据。然后,您可以迭代对象以获取键/值对。
var vars = '{"name": "Someone","number": 15,"type": "something"}';
var json = JSON.parse(vars);
for (var key in json){
console.log(key + ' => ' + json[key]);
}
答案 1 :(得分:0)
我假设您无法控制外部JavaScript文件
示例中的所有变量都将在global
范围内定义。这意味着它们被分配到window
对象。
然后,您可以使用点或括号语法访问它们:
// dot syntax
window.var1;
// -> "var1"
// bracket syntax
window['var1'];
// -> "var1"
因此,您不需要知道确切的变量名称,您可以检查变量是否在window
对象上定义,并使用括号表示法来获取值