Javascript 在for语句中使用动态变量

Javascript 在for语句中使用动态变量,javascript,jquery,Javascript,Jquery,我想动态地创建和引用一些变量,但我不知道如何创建和引用 以下是我认为“应该”起作用的,但我知道不起作用 var weeks = 4; for(i=0; i<weeks.length;i++){ var 'week_'+i = valueFromXML; } function wtFn (){ 'week_'+i.splice(-1, 1); if('week_'+i.length <=0){ $(this).parent().parent().slideU

我想动态地创建和引用一些变量,但我不知道如何创建和引用

以下是我认为“应该”起作用的,但我知道不起作用

var weeks = 4;
 for(i=0; i<weeks.length;i++){
  var 'week_'+i = valueFromXML;
}



function wtFn (){
  'week_'+i.splice(-1, 1);
  if('week_'+i.length <=0){
    $(this).parent().parent().slideUp();
  }
}
var周=4;

对于(i=0;i您不能在不使用
eval
的情况下动态声明变量,这不是一个好的做法

我建议您使用对象将值存储为属性:

var weeks = 4;
var obj = {};
for(var i = 0; i< weeks; i++){
  obj['week_'+i] = valueFromXML;
}

如果不使用
eval
,就不能动态声明变量,这被认为是一种不好的做法

我建议您使用对象将值存储为属性:

var weeks = 4;
var obj = {};
for(var i = 0; i< weeks; i++){
  obj['week_'+i] = valueFromXML;
}

您想要使用数组

var weeks = new Array();

for(i=0; i < weeks.length;i++) {
  weeks[i] = valueFromXML;
}
var weeks=新数组();
对于(i=0;i
您想使用数组

var weeks = new Array();

for(i=0; i < weeks.length;i++) {
  weeks[i] = valueFromXML;
}
var weeks=新数组();
对于(i=0;i
正如其他人所指出的,数组或对象是最好的选择。但如果确实需要,您可以创建动态变量,或者创建全局对象的成员,
窗口
。假设这是在浏览器中执行的,请执行以下操作:

var weeks = 4;
 for(i=0; i<weeks.length;i++){
  var window['week_'+i] = valueFromXML;
}



function wtFn (){

  window['week_'+i].splice(-1, 1);
  if(window['week_'+i].length <=0){
    $(this).parent().parent().slideUp();
  }
}
var周=4;

对于(i=0;i,正如其他人所指出的,数组或对象才是最好的选择。但如果确实需要,您可以创建动态变量——或者更确切地说,您可以创建全局对象的成员,
window
。假设这是在浏览器中执行的,请执行以下操作:

var weeks = 4;
 for(i=0; i<weeks.length;i++){
  var window['week_'+i] = valueFromXML;
}



function wtFn (){

  window['week_'+i].splice(-1, 1);
  if(window['week_'+i].length <=0){
    $(this).parent().parent().slideUp();
  }
}
var周=4;

对于(i=0;我想我实际上要做的是动态创建一个对象,就像上面的答案一样,但也要在对象内部动态创建一系列数组。对于(i=0;i