从for循环中排除索引/元素

时间:2017-06-24 11:24:00

标签: javascript arrays for-loop

我有这段代码

var a = ['a', 'b', 'c'];
var b = ['a', 'd', 'b', 'c'];

for (var i = 0; i < a.length; i ++) {
if (a[i] === b[i]) {
alert('ok');
  }
}

我怎样才能跳过数组b 'd'元素,所以它总是提醒我?

已更新

我只是想知道如何跳过某些索引。我的意思是如果我不想查看我为0编写的索引(var i = 1; i < a.length; i ++),如果我不想检查最后一个索引,我会a.length-1,但我如何跳过索引,如果它不是第一个/最后一个?

2 个答案:

答案 0 :(得分:2)

来自您的澄清评论:

  

我只是想知道如何跳过某些索引。我的意思是如果我不想查看索引0我写for (var i = 1; i < a.length; i ++),如果我不想查看最后一个索引,我会a.length-1,但我如何跳过索引,如果它不是第一个/最后一个?

它比其中任何一项工作更多:在[{1}}上使用时,您需要检查i是否是>=要跳过的索引:

b

密钥有var a = ['a', 'b', 'c']; var b = ['a', 'd', 'b', 'c']; for (var i = 0; i < a.length; i ++) { if (a[i] === b[i >= 2 ? i + 1 : i]) { alert('ok'); } } ,表示&#34;如果b[i >= 2 ? i + 1 : i]为2或更高,请使用i;否则,请使用i + 1

当然,假设ib长一个;如果不是,最后a将导致b[i >= 2 ? i + 1 : i]

或者,使用两个循环。或者两个索引为Jonas w suggested

答案 1 :(得分:0)

您需要两个指数:

var a = ['a', 'b', 'c'];
var b = ['a', 'd', 'b', 'c'];

for (var i = 0,j=0; (i < a.length) && (j<b.length); i ++,j++) {
  if(b[j]==="d"){
    j++;//skip
  }
  if (a[i] === b[j]) {
    alert('ok');
  }
}

https://jsfiddle.net/4wjkdgdd/