Javascript 将函数参数传递到数组';s位置
在循环中增加数组的正确方法是什么?我传入了一个非零的数字,希望得到数组的正确起始位置 我可以使用eval使其工作:Javascript 将函数参数传递到数组';s位置,javascript,arrays,Javascript,Arrays,在循环中增加数组的正确方法是什么?我传入了一个非零的数字,希望得到数组的正确起始位置 我可以使用eval使其工作: arrayPosition = "articleArray[" + (goTo - 1) + "][0]"; window.scroll(eval(arrayPosition), 0); 但我知道这不是正确的编码,现在我使用的是/“use strict”它将不再运行 我试过以下几种: var x = arrayPosition[goTo - 1][0]; window.scrol
arrayPosition = "articleArray[" + (goTo - 1) + "][0]";
window.scroll(eval(arrayPosition), 0);
但我知道这不是正确的编码,现在我使用的是/“use strict”代码>它将不再运行
我试过以下几种:
var x = arrayPosition[goTo - 1][0];
window.scroll(x,0);
但是这些不起作用
函数滚动到文章(参考、转到、显示部分){
//推荐人,需要转到
var showSection=(showSection的类型)!=“未定义”?showSection:false;
var tmpNum=Math.round(articleArray.length/2);
if(goTo!==tmpNum&&goTo!==articleArray.length){
arrayPosition=“articleArray[”+(goTo-1)+“][0]”;
滚动窗口(eval(arrayPosition),0);
}else if(goTo==tmpNum){
window.scrollTo(mainContentCenterScrollTo-(window.innerWidth/2),0);
}否则{
arrayPosition=“(articleArray[”+(goTo-1)+“][0])+(articleArray[”+(goTo-1)+“][1])”;
滚动到(eval(arrayPosition),0);
}
}
不需要eval,只需引用阵列即可:
var arrayPosition = articleArray[goTo - 1][0];
window.scroll(arrayPosition, 0);
很抱歉,这是我的错,如上所述,数组中的值是字符串而不是数字,这就是eval工作而[i-1]不工作的原因。虽然这似乎合理,但这不正是OP所说的他们已经尝试过但没有成功的结果吗?“我尝试过var x=arrayPosition[goTo-1][0];window.scroll(x,0);
的各种变体,但都不起作用。”我并没有找到更好的解决方案,但我想我应该提到它。@Santi-注意这篇文章中的名称变化与您所注意到的相比。@markschultheis是的,保留的x
,但答案根本没有提到这一点。此外,或OP可以提供更多细节,因此我们不会猜测解决方案。@Santi不是x,而是OPs帖子中的articleArray
与您的评论arrayPosition
-这里不要挑剔任何人,只是细节很重要,即实际数组是什么,OP没有指定,但它似乎是问题的症结所在。您如何调用该函数?如果将goTo
作为string
而不是integer
传递,则可能会出现这种行为。“在循环中增加数组的正确方法是什么”。push
,因此该问题的措辞可能不正确?i、 e.引用循环中的数组位置?goTo的类型显示什么?请告诉我们调用函数的位置。var x=arrayPosition[goTo-1][0]
是一个与“articleArray[”+(goTo-1)+“][0]”评估完全不同的对象(数组)
您想要哪个数组?