Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/472.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何不脱离数组边界_Javascript_Arrays_For Loop - Fatal编程技术网

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