我有一个数组,通过循环我将细胞与它附近的细胞进行比较。我得到了超出范围的'例外, 我该如何解决?
for (var i = 0; i < array.length ; i++) {
if ((++array[i] == array[i+1])) {
alert("yes");
}
else {
alert("no");
}
}
答案 0 :(得分:2)
从for (var i=0; i<array.length -1; i++)
开始运行循环(因为您与array[i+1]
进行比较)
答案 1 :(得分:0)
试试:
for (var i = 0; i < array.length - 1; i++) {}
答案 2 :(得分:0)
不确定你的想法,但在for循环之外使用++绝不是一个好主意,因为它可能会令人困惑。使用另一个变量指向数组中的另一个项目,同时使用边界检查器循环更容易调试并保持循环简单。
//displays 01010
//1=2(0),2=2(1),2=4(0),4=4(1),4=5(0)
var ptr = 0;
var items = new Array (1, 2, 2, 4, 4, 5);
for (var i = 0; i < items.length; i++) {
ptr++
if(ptr >= items.length)break;
if (items[i] == items[ptr]) {
console.log(1);
}
else {
console.log(0);
}
}
//or
//displays 10001 as each value is increased then compared
//2=2(1),3=2(0),3=4(0),5=4(0),5=5(1)
ptr = 0;
for (var i = 0; i < items.length; i++) {
ptr++
if (ptr >= items.length) break;
if (++items[i] == items[ptr]) {
console.log(1);
}
else {
console.log(0);
}
}