我在循环函数中使用$ {'变量' + i}时遇到问题。我想从循环中调用每个函数。我读到了模板文字,但我无法找到与我的问题有关的任何内容。
我想用
$ {'变量' + i}(它适用于php但不适用于javascript)
我试图用这个`但它也没有用。
这是我的代码
var call = new XMLHttpRequest();
call.onreadystatechange = function(){
if(this.readyState == 4 && this.status == 200){
var myObj = JSON.parse(this.responseText);
var jumlah = myObj.jumlah;
var varray = new Array();
for(i=1; i<=jumlah; i++){
varray.push(`${"myObj.namagame"+i}`);
}
}
}
call.open("GET","'.$GLOBALS['dirfile'].'/core/update.php?f=search&q="+str,true);
call.send();
这是我的JSON结果
{"jumlah":3,"namagame1":"ark survival evolved","namagame2":"agents of mayhem","namagame3":"age of mythology"}
那么,我想获得myObj.namagame1,myObj.namagame2,myObj.namagame3,这就是为什么我使用循环函数来获取它们然后将它们写入文档。
请你帮助我,如果我的问题是如此愚蠢,我很抱歉。谢谢
答案 0 :(得分:1)
根据我的理解,您在JavaScript中使用模板文字。请尝试在代码中进行以下更改。希望它能奏效。
myObj[
namagame $ {i} ]
代替${"myObj.namagame"+i}
使用模板字符串文字:
call.onreadystatechange = function(){
if(this.readyState == 4 && this.status == 200){
var myObj = JSON.parse(this.responseText);
var jumlah = myObj.jumlah;
var varray = new Array();
for(i=1; i<=jumlah; i++){
varray.push(myObj[`namagame${i}`]);
}
}
}
如果我们想尝试使用模板字符串文字,您可以使用以下代码。
call.onreadystatechange = function(){
if(this.readyState == 4 && this.status == 200){
var myObj = JSON.parse(this.responseText);
var jumlah = myObj.jumlah;
var varray = new Array();
for(i=1; i<=jumlah; i++){
varray.push(myObj["namagame"+i]);
}
}
}
答案 1 :(得分:0)
模板文字是允许嵌入表达式的字符串文字。您可以使用多行字符串和字符串插值功能
例如:
var myVar = 123;
var string = `The value of myVar is ${myVar}`;
var string2 = "The value of myVar is " + myVar;
// both of our new strings are identical
console.log(string);
console.log(string2);
在你的例子中,你想要这样的东西:
for(i = 1; i <= jumlah; i++){
varray.push(myObj[`namagame${i}`]);
}