Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将组合变量用于退出变量?_Javascript_Arrays - Fatal编程技术网

Javascript 如何将组合变量用于退出变量?

Javascript 如何将组合变量用于退出变量?,javascript,arrays,Javascript,Arrays,我有一个问题,将2个添加的变量转换为一个局部变量。 这是我的原始代码 var mycars = new Array(); mycars[4]=(aa+","+bb+","+cc+","+dd+","+ee+","+ff+","+gg+","+hh); mycars[5]=(ii+","+jj+","+kk+","+ll+","+mm+","+nn+","+oo+","+pp); var car4 = mycars[4].toString(); var car5 = mycars[5].toSt

我有一个问题,将2个添加的变量转换为一个局部变量。 这是我的原始代码

var mycars = new Array();
mycars[4]=(aa+","+bb+","+cc+","+dd+","+ee+","+ff+","+gg+","+hh);
mycars[5]=(ii+","+jj+","+kk+","+ll+","+mm+","+nn+","+oo+","+pp);

var car4 = mycars[4].toString();
var car5 = mycars[5].toString();

var new_data4 = car4.split(",");
var new_data5 = car5.split(",");

var final_data = "new_data";

for(var i = 4; i < 6 ; i++){
  var c = final_data + i;

  alert(c[i]);// the result is d,a(the local array n,e,w,_,d,a,t,a)
}
var mycars=new Array();
mycars[4]=(aa+,“+bb+”,“+cc+”,“+dd+”,“+ee+”,“+ff+”,“+gg+”,“+hh”);
mycars[5]=(ii+,“+jj+”,“+kk+”,“+ll+”,“+mm+”,“+nn+”,“+oo+”,“+pp);
var car4=mycars[4].toString();
var car5=mycars[5].toString();
var new_data4=car4.split(“,”);
var new_data5=car5.split(“,”);
var final_data=“new_data”;
对于(变量i=4;i<6;i++){
var c=最终数据+i;
alert(c[i]);//结果是d,a(本地数组n,e,w,u,d,a,t,a)
}
我想这个结果是ee,nn

    var c = final_data + i;
努力做到

  var c =  window[final_data + i];

c
不是数组;它是一根绳子。因此,
alert(c[i])
分别返回字符串
new_data4
new_data5
的第五个和第六个字符

如果要使用
c
作为变量名,并且这些变量是全局变量,则可以访问元素,如
window[c][i]
。但这不适用于局部变量。没有按名称访问局部变量的标准方法

但是,在将所有变量设置为全局变量之前,根本不需要按名称访问变量。如果它们在一个数组中,您可以通过数字访问它们

看这个

var new_data = [];
new_data[4] = [aa, bb, cc, dd, ee, ff, gg, hh];
new_data[5] = [ii, jj, kk, ll, mm, nn, oo, pp];

for(var i = 4; i < 6 ; i++){
  alert(new_data[i][i]);
}
var new_data=[];
新的_数据[4]=[aa、bb、cc、dd、ee、ff、gg、hh];
新的_数据[5]=[ii,jj,kk,ll,mm,nn,oo,pp];
对于(变量i=4;i<6;i++){
警报(新的_数据[i][i]);
}
顺便说一句,请注意,所有的东西,与concatting值和字符串化的结果,然后再次分裂…是怎么消失的?没必要,这基本上是一项繁忙的工作。您可以使用已经填充的值创建一个数组,这样的数组应该是您的权威数据源。如果您需要一个字符串,那么从数组构建它——而不是相反


除了将您编写的代码量减半外,这还可以在名称中使用逗号,而不会把所有内容都搞糟。(目前,如果一个名称碰巧有一个逗号,你可以去掉该名称及其后面的所有内容。)

c
是一个字符串,而不是数组。因此,
alert(c[i])
基本上是向相应字符串的第五个和第六个字符发出警报
new_data4…
new_data5…
。抱歉,但我如何将字符串转换为exit变量?您不能,除非变量是全局变量(在这种情况下,您可以说
window[c][i]
)。但是,不要再对相关数据使用离散变量,而要使用数组或对象。相信我,你会是一个更好的程序员。(呸,写一个答案。)我不能工作。它似乎有一些问题。它有什么问题??