索引不存在JavaScript?

时间:2018-12-11 01:21:19

标签: javascript error-handling index-error

integrityCheck = function () {
    var check = ['098f6bcd', '4621d373', 'cade4e83', '2627b4f6'];
    for (var i = 0; i <= check.length; i++) {
        checkIntegrityOfData(
            i,
            check[i]
        );
    }
}

在我的代码部分中可能有一个非常明显的错误,但是我在JavaScript上是新手,所以我看不到它。

2 个答案:

答案 0 :(得分:0)

数组索引从0开始,这意味着如果数组包含5个元素,则长度为5,但最大索引为4

根据您的条件逻辑 您将需要修复条件逻辑i <= check.length,循环的最后一次迭代将尝试访问check[4],但是check中的最后一个元素将在check[3]中。

将循环条件代码更改为

for (var i = 0; i < check.length; i++) {

答案 1 :(得分:0)

问题是您的循环达到了数组的长度,包括数组的长度,但是数组的长度从1开始,而数组的索引从0开始。更改为此:

for (var i = 0; i < check.length; i++) {

它将起作用。 (我所做的只是将i <= check.length更改为i {{ 1}} <,因此它不会遍历最后一个索引,而这正是导致错误的原因。