在循环中递增数组的正确方法是什么?我传入一个非零数字,想要获得数组的正确起始位置。
我可以使用eval开始工作:
arrayPosition = "articleArray[" + (goTo - 1) + "][0]";
window.scroll(eval(arrayPosition), 0);
但我知道这不是正确的编码,现在我正在使用//"use strict";
它将不再运行。
我尝试过各种变体:
var x = arrayPosition[goTo - 1][0];
window.scroll(x,0);
但这些都行不通。
function scrollToArticle(referrer, goTo, showSection) {
// referrer, goTo are required
var showSection = (typeof showSection) !== "undefined" ? showSection : false;
var tmpNum = Math.round(articleArray.length / 2);
if (goTo !== tmpNum && goTo !== articleArray.length) {
arrayPosition = "articleArray[" + (goTo - 1) + "][0]";
window.scroll(eval(arrayPosition), 0);
} else if (goTo === tmpNum) {
window.scrollTo(mainContentCenterScrollTo - (window.innerWidth / 2), 0);
} else {
arrayPosition = "(articleArray[" + (goTo - 1) + "][0]) + (articleArray[" + (goTo - 1) + "][1])";
window.scrollTo(eval(arrayPosition), 0);
}
}
答案 0 :(得分:1)
应该不需要eval,只需要对数组的引用:
var arrayPosition = articleArray[goTo - 1][0];
window.scroll(arrayPosition, 0);
答案 1 :(得分:0)
对不起所有这是我的错误,如上所述,过去到数组的值是一个字符串,而不是一个数字,这就是eval工作和[i-1]没有的原因。