如何在JS中添加两个变量?

Per*_*ero 0 javascript jquery

我有以下循环迭代数组,我尝试访问数组中当前位置的下一个位置.

for( var i in myArray){
   var temp = myArray[i+1];
}
Run Code Online (Sandbox Code Playgroud)

问题是它没有添加1与var i,但它只是在i上添加数字1.就像我是2,我这样做

i+1
Run Code Online (Sandbox Code Playgroud)

结果是

21
Run Code Online (Sandbox Code Playgroud)

而不是3.

为什么这样,我怎么能添加这两个变量?

Nin*_*olz 7

基本上,您正在迭代对象的键(数组是对象),键始终是字符串(或ES6中的符号类型).要转换为数字,您可以plus在其前面添加一个一元数字,用于将弦乐数字转换为数字.

var temp = myArray[+i + 1];
Run Code Online (Sandbox Code Playgroud)

您可以使用计数器更好地使用经典迭代,例如

var i, temp;
for (i = 0; i < array.length; i++) {
    temp = array[i + 1];
    // some more code
}
Run Code Online (Sandbox Code Playgroud)

因为for ... in迭代对象的所有可枚举属性(如果存在).有关更多信息,请参阅为什么在数组迭代中使用"for ... in"是一个坏主意?