所以看起来这个javascript循环有时会导致我的Firefox过载并崩溃。我只是不明白为什么。
//prep genresArray
var genPrint = ""; //variable initialized to avoid "undefined" in print loop
var GAL = movieListLocal[i].genresArray;
for(var i=0; i<2; i++){
genPrint = genPrint+GAL[i].name+", ";
}
genresArray包含许多流派对象,每个流派都有一个id和一个名字(如冒险,恐怖等)。我只是想变成一个连续的字符串。
答案 0 :(得分:2)
看起来这个循环嵌套在另一个也使用i
的循环中。对于内部循环,您应该使用其他变量名称,例如j
。
var genPrint = "";
// outer loop counter----v
var GAL = movieListLocal[i].genresArray;
// -----v--inner loop counter
for(var j=0; j<2; i++){
genPrint = genPrint+GAL[j].name+", ";
}
JS在使用var
时没有块范围,因此内部i
声明会覆盖外部声明。
它将与let
声明一起使用,该声明来自ECMAScript 6,目前可在Firefox中使用。
for (let i = 0; i < 3; ++i) {
console.log("foo", i)
for (let i = 0; i < 3; ++i)
console.log("bar", i)
}