这就是我所做的
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更合适吗?
答案 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)
如果您需要使用索引的最后一个值或最后一个值,您的代码将无效。
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;
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;
注意:最好使用break
。更新i的值听起来更像是一种解决方法。
答案 5 :(得分:0)
您可以在条件中包含多个表达式:
for (var i=0; i < sampleArr.length && sampleArr[i] != 'Mango'; i++)
但 break 可能更清晰。