在javascript中打破循环

时间:2016-06-05 05:43:00

标签: javascript for-loop

这就是我所做的

var sampleArr = ['Apple','Mango','Orange','Lemon']

for (var i=0; i < sampleArr.length; i++){
      if (sampleArr[i] === 'Mango'){
         // found Mango no need to go further 
         i = sampleArr.length;
      }
}

我在我的程序中编写了类似的代码,我在使用这种技术在满足某个条件时退出for循环。它有效,但它是一种很好的做法,是否有更好的替代礼物?我看过类似的问题,其中使用了关键字&#39; break&#39;使用break更合适吗?

6 个答案:

答案 0 :(得分:1)

您应该使用break关键字。所以你的代码看起来像这样:

var sampleArr = ['Apple','Mango','Orange','Lemon']

for (var i=0; i < sampleArr.length; i++){
    if (sampleArr[i] === 'Mango'){
        // found Mango no need to go further 
        break;
    }
}

答案 1 :(得分:1)

您应该了解Array.prototype.indexOf。如果元素不存在于数组中,它将返回匹配元素的索引或-1

var sampleArr = ['Apple','Mango','Orange','Lemon'];
var i = sampleArr.indexOf('Mango');
console.log(i); //=> 1

// Here's a key that doesn't exists
var j = sampleArr.indexOf('Chocolate');
console.log(j); //=> -1

答案 2 :(得分:0)

不确定为什么使用此技术而不是break标准关键字来执行相同的工作。 Read here more。代码将比这更简单,并且通过查看代码,任何开发人员都可以看到它在您的条件下中断。而不是在设置i = sampleArr.length;之后检查发生了什么。

答案 3 :(得分:0)

您应该努力使用现有的语言结构,而不是重新发明轮子。在这种情况下,break关键字应完全符合该法案:

for (var i=0; i < sampleArr.length; i++){
      if (sampleArr[i] === 'Mango'){
         // found Mango no need to go further 
         break; // Here!
      }
}

答案 4 :(得分:0)

如果您需要使用索引的最后一个值或最后一个值,您的代码将无效。

您的代码

&#13;
&#13;
var sampleArr = ['Apple', 'Mango', 'Orange', 'Lemon']

for (var i = 0; i < sampleArr.length; i++) {
  if (sampleArr[i] === 'Mango') {
    // found Mango no need to go further 
    i = sampleArr.length;
  }
}

console.log(sampleArr[i])
&#13;
&#13;
&#13;

休息声明

&#13;
&#13;
var sampleArr = ['Apple', 'Mango', 'Orange', 'Lemon']

for (var i = 0; i < sampleArr.length; i++) {
  if (sampleArr[i] === 'Mango') {
    // found Mango no need to go further 
    break;
  }
}
console.log(sampleArr[i])
&#13;
&#13;
&#13;

注意:最好使用break。更新i的值听起来更像是一种解决方法。

答案 5 :(得分:0)

您可以在条件中包含多个表达式:

for (var i=0; i < sampleArr.length && sampleArr[i] != 'Mango'; i++)

break 可能更清晰。