任何人都可以使用javascript中的$ {}来帮助我

时间:2017-03-09 11:33:22

标签: javascript jquery

我在循环函数中使用$ {'变量' + 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,这就是为什么我使用循环函数来获取它们然后将它们写入文档。

请你帮助我,如果我的问题是如此愚蠢,我很抱歉。谢谢

2 个答案:

答案 0 :(得分:1)

根据我的理解,您在JavaScript中使用模板文字。请尝试在代码中进行以下更改。希望它能奏效。

  1. 使用myObj[ namagame $ {i} ]代替${"myObj.namagame"+i}
  2. 使用模板字符串文字:

    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)

取自Template Literals

上的文件
  

模板文字是允许嵌入表达式的字符串文字。您可以使用多行字符串和字符串插值功能

例如:

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}`]);                       
}