[英]javascript array for loop i+1 returning undefined
数组 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=ref.length-2;i>=0;i--)
Javascript 将评估每次迭代的条件,因此通常最好将 go 向后倒。 使用此构造“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++) { // Note the "-1".
这样,当您使用索引i+1
时,您仍然处于界限内。
for (var i = 0; i < ref.length - 1; i++
)
这是一个简单的解决方案。 再数一下计数器。
if( ref[i]['x'] != ref[++i]['x'] && ref[++i]['x'].length > 0 )
关于什么:
for(var i=0;i<ref.length-1;i++){
如果您只使用 ref.length-1 不会解决您的问题吗? 我可能不完全明白你在问什么。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.