Javascript 如何为FOR循环中的变量名分配索引?
如何为变量名分配索引?例如,project0、project1、project2等Javascript 如何为FOR循环中的变量名分配索引?,javascript,Javascript,如何为变量名分配索引?例如,project0、project1、project2等 for (var i=0; i<data.length; i++) { var project+i = new GanttProjectInfo(1, "Applet redesign", new Date(2010, 5, 11)); var parentTask+i = new GanttTaskInfo(1, "Old code review", new Date(2010, 5, 1
for (var i=0; i<data.length; i++)
{
var project+i = new GanttProjectInfo(1, "Applet redesign", new Date(2010, 5, 11));
var parentTask+i = new GanttTaskInfo(1, "Old code review", new Date(2010, 5, 11), 208, 50, "");
project1.addTask(parentTask+i);
// Load data structure
ganttChartControl.addProject(project+i);
// Build control on the page
}
for(var i=0;i正如@JaredFarrish所建议的,您可以简单地使用数组来存储所有项目。创建它们并在变量被覆盖之前将它们添加到数组中:
var projects = [];
for (var i = 0; i < data.length; i++) {
var project = new GanttProjectInfo(1, "Applet redesign", new Date(2010, 5, 11));
var parentTask = new GanttTaskInfo(1, "Old code review", new Date(2010, 5, 11), 208, 50, "");
project.addTask(parentTask);
ganttChartControl.addProject(project);
// Push this project to the array to save it
projects.push(project);
}
// Need to access the first project?
projects[0].foo();
var项目=[];
对于(变量i=0;i
使用eval()
评估((“变量名”+i)+“=”+5+i)
但是不建议使用eval,因为你要做的事情总是有办法的。不要这样做,而是使用数组!(这会让你免于痛苦)我同意@Niko,doarr.push(5+I)
window[“varname”+I]=..
可以工作,但它不是很有用,并且会污染名称空间。在全局之外,您可以使用类似于obj={}…obj['varname'+i]的对象=…
。不过,在这种情况下,与数组相比还是有点毫无意义。@Niko:我更新了我的示例。问题是我正在使用DHTMLX库创建甘特图。如何解决数组的这个问题?项目。推送(new GanttProjectInfo(…);
以及如何解决这个问题:project1.addTask(parentTask+I);?像这个项目一样[I].addTask(parentTasks[i]);?哇,和我写的评论一样。+1:)
我建议的唯一改进是为迭代上下文存储数据.length
,即i=0,length=data.length,i