Javascript 应用带有变量的循环
我试图压缩我的代码,因为我有很多重复的编码发生。我需要多次应用相同的示例。我想创建一个for循环,但我的变量也需要增加。现在我的变量在增加,但我无法将单元格数据实现到变量中。我想我是双重赋值var h。我想不出怎么避开这件事。谢谢你的帮助 用于循环Javascript 应用带有变量的循环,javascript,for-loop,Javascript,For Loop,我试图压缩我的代码,因为我有很多重复的编码发生。我需要多次应用相同的示例。我想创建一个for循环,但我的变量也需要增加。现在我的变量在增加,但我无法将单元格数据实现到变量中。我想我是双重赋值var h。我想不出怎么避开这件事。谢谢你的帮助 用于循环 for (var j = 2; j<15; j++){eval("var polebrea" +j); var h = ("polebrea" +j) } h = document.getElementById("part1Table"
for (var j = 2; j<15; j++){eval("var polebrea" +j);
var h = ("polebrea" +j)
}
h = document.getElementById("part1Table").rows[10].cells[2].innerHTML;
(续至第15页)
插入变量
<script>document.write(polebrea2)</script>
document.write(polebrea2)
虽然做你正在做的事情不一定是好的实践,但你可以尝试以下方法:
var createVariable = function( index ){
var variableName = "polebrea" + index;
var objName = document.getElementById("part1Table").rows[10].cells[index].innerHTML;
return (variableName + " = " + objName + ";");
};
for (var j = 2; j<15; j++){
var objToWrite = createVariable(j);
console.log( objToWrite );
}
var createVariable=函数(索引){
var variableName=“polebrea”+指数;
var objName=document.getElementById(“part1Table”).rows[10]。cells[index]。innerHTML;
返回(variableName+“=”+objName+“;”);
};
对于(var j=2;j忽略设计教条….使用属性访问的字符串索引形式设置变量:
// window is a bad place for this....you should probably put it on another object e.g. var polbreas = {};
for (var i = 2; i<15; i++){
window["polbrea"+i] = document.getElementById("part1Table").rows[10].cells[i].innerHTML;
}
//窗口是一个不好的地方……您可能应该将它放在另一个对象上,例如var polbreas={};
对于(var i=2;我不使用eval
。创建一个可以索引的数组。使用一个对象来存储它们,而不是为每个数组创建一个新变量。对象[“polebrea”+j]
具有动态命名的变量是某个地方设计不好的标志。使用可以容纳某个集合的数据结构,如对象或数组。感谢Joshua,你的答案与我所寻找的完全一致,并且它可以在不改变任何内容的情况下工作。实际上,我自己也曾几次接近这一点,但不确定是什么原因re我错了。现在我所要做的就是使用(document.write(polbrea2)),它给了我正确的单元格。我还有其他if语句,可以提取其他数字。
// window is a bad place for this....you should probably put it on another object e.g. var polbreas = {};
for (var i = 2; i<15; i++){
window["polbrea"+i] = document.getElementById("part1Table").rows[10].cells[i].innerHTML;
}