循环i + 1返回未定义的javascript数组

| 数组ref.length = 7(0-6),我想尝试将ref [0] [\'x \']与ref [1] [\'x \']进行匹配:
   for(var i=0;i<ref.length;i++){
      if( ref[i][\'x\'] != ref[i+1][\'x\'] && ref[i+1][\'x\'].length > 0 )
         //do something
   }
for循环一直迭代到数组编号6,然后元素6 + 1为空,所以我在if语句行收到一条错误消息,说ref [i + 1]未定义。 有一个更好的方法吗?     
已邀请:
        
for (var i=0; i<ref.length-1; i++) { // Note the \"-1\".
这样,当您使用索引
i+1
时,您仍然会陷入困境。     
        更好:
for (var i=ref.length-2;i>=0;i--)
Javascript将在每次迭代时评估条件,因此通常最好将其倒退。使用这种构造,“ ref.length \”仅被评估一次。我喜欢的另一种选择将执行相同的操作:
var i=ref.length-1;
while (i--) {

}
(通常在第一个示例中为
i=ref.length-1
,在第二个示例中为
i=ref.length
,但是您试图将其保留为比数组长度小一个)。     
        
for (var i = 0; i < ref.length - 1; i++
)     
        关于什么:
for(var i=0;i<ref.length-1;i++){
    
        如果仅使用ref.length-1不会解决您的问题吗?我可能不太了解您的要求。     
        这是一个简单的解决方案。 只需再次计数计数器。
if( ref[i][\'x\'] != ref[++i][\'x\'] && ref[++i][\'x\'].length > 0 )
    

要回复问题请先登录注册