数组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]是未定义的....
有更好的方法吗?
答案 0 :(得分:3)
更好:
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
,但您试图保持比数组长度少一个。
答案 1 :(得分:2)
for (var i=0; i<ref.length-1; i++) { // Note the "-1".
这种方式当您使用索引i+1
时,您仍处于边界内。
答案 2 :(得分:1)
for (var i = 0; i < ref.length - 1; i++
)
答案 3 :(得分:0)
怎么样:
for(var i=0;i<ref.length-1;i++){
答案 4 :(得分:0)
如果你只是使用ref.length-1那不会解决你的问题吗?我可能不完全明白你在问什么。
答案 5 :(得分:0)
这是一个简单的解决方案。 再试一次计数器。
if( ref[i]['x'] != ref[++i]['x'] && ref[++i]['x'].length > 0 )