我有以下循环迭代数组,我尝试访问数组中当前位置的下一个位置。
for( var i in myArray){
var temp = myArray[i+1];
}
问题是它没有添加带有var i的1,但它只是在i上附加数字1。 就像我是2,我这样做
i+1
结果是
21
而不是3。
为什么会这样,我怎样才能添加这两个变量?
答案 0 :(得分:7)
基本上,您正在迭代对象的键(数组是对象),键是always strings (or symbol type in ES6)。要转换为数字,您只需在其前面添加一元plus
即可将带有数字的数字转换为数字。
var temp = myArray[+i + 1];
您可以使用计数器更好地使用经典迭代,例如
var i, temp;
for (i = 0; i < array.length; i++) {
temp = array[i + 1];
// some more code
}
因为for ... in
遍历对象的所有可枚举属性(如果存在)。有关详细信息,请参阅Why is using “for…in” with array iteration a bad idea?
答案 1 :(得分:1)
Parseint应该用于添加两个变量
QPlainTextEdit
这是你可以在Javascript ....中添加两个变量的方法。