我试图在等于某个输入时停止我的for循环,我能够在函数之外实现这个。例如,假设我将输入变量设置为'not leak',我希望循环在数组命中'not'时停止,并将其添加到关键字变量,该变量设置为'leak'以输出'not leak'。但是,当我尝试将循环插入函数时,它会按预期停止工作,并会给出每个结果,直到输入变量等于文本变量(我不希望它这样做)。例如,当我只想输出'not leak'时,它会输出'no leak','not leak',这就是它会停止的地方
我已经尝试了各种函数格式,例如将函数设置为变量,给出函数参数,以及将函数放在函数内部和外部进行零处理。似乎break if语句在插入函数后不能按预期工作。知道为什么以及如何解决这个问题?
下面是它在函数内部的外观。
function negKeyword() {
var keyword = 'leak';
var input = 'not leak';
var text = '';
var arr = ['no', 'not', 'checked', ''];
for (i = 0; i < arr.length; i++) {
if (text == input) { break; }
text = arr[i] + ' ' + keyword;
console.log(text);
}
}
negKeyword();
以下是它在函数外的看法
var keyword = 'leak';
var input = 'no leak';
var text = "";
var arr = ['no', 'not', 'checked', ''];
for (i = 0; i < arr.length; i++) {
if (text===input) {break;}
text = arr[i] + ' ' + keyword;
}
console.log(text);
答案 0 :(得分:0)
您正在循环中使用console.log。下面的函数匹配内部和外部的一个。
function negKeyword() {
var keyword = 'leak';
var input = 'not leak';
var text = '';
var arr = ['no', 'not', 'checked', ''];
for (i = 0; i < arr.length; i++) {
if (text == input) { break; }
text = arr[i] + ' ' + keyword;
}
console.log(text);//Place this here ( outside the for loop )
}
negKeyword();
答案 1 :(得分:0)
你的console.log在循环中。
function negKeyword() {
var keyword = 'leak';
var input = 'not leak';
var text = '';
var arr = ['no', 'not', 'checked', ''];
for (i = 0; i < arr.length; i++) {
if (text == input) { break; }
text = arr[i] + ' ' + keyword;
}
return text;
}
console.log( negKeyword() );