Javascript 如何不脱离数组边界
我有一个数组,通过循环,我将单元格与其附近的单元格进行比较。我得到了“超出范围”的例外, 我怎样才能修好它Javascript 如何不脱离数组边界,javascript,arrays,for-loop,Javascript,Arrays,For Loop,我有一个数组,通过循环,我将单元格与其附近的单元格进行比较。我得到了“超出范围”的例外, 我怎样才能修好它 for (var i = 0; i < array.length ; i++) { if ((++array[i] == array[i+1])) { alert("yes"); }
for (var i = 0; i < array.length ; i++) {
if ((++array[i] == array[i+1])) {
alert("yes");
}
else {
alert("no");
}
}
(var i=0;i
如果(++array[i]==array[i+1]){
警惕(“是”);
}
否则{
警告(“否”);
}
}
从运行循环(var i=0;i只需尝试:
for (var i = 0; i < array.length - 1; i++) {}
for(var i=0;i
不确定您的想法是什么,但在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);
}
}
//显示01010
//1=2(0),2=2(1),2=4(0),4=4(1),4=5(0)
var-ptr=0;
var项目=新数组(1,2,2,4,4,5);
对于(变量i=0;i=items.length)中断;
if(项目[i]==项目[ptr]){
控制台日志(1);
}
否则{
控制台日志(0);
}
}
//或
//每增加一个值,然后进行比较,显示10001
//2=2(1),3=2(0),3=4(0),5=4(0),5=5(1)
ptr=0;
对于(变量i=0;i=items.length)中断;
如果(++项目[i]==项目[ptr]){
控制台日志(1);
}
否则{
控制台日志(0);
}
}
数组的最后一个元素应该与什么进行比较?它在最后一次迭代中失败,因为i+1
会导致一个与数组索引不对应的数字。最后的比较是在最后一个元素和它前面的元素之间进行的。在这种情况下,两个现有的答案应该是正确的。您是否打算增加值of数组中的每个项目,并将第n个项目与第n+1个项目进行比较?@Damkull:您不能有越界错误。请再次检查您是否在每次需要访问第(i+1)个项目时都在测试(i