在函数

时间:2016-07-22 00:54:37

标签: javascript loops for-loop

我试图在等于某个输入时停止我的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);

2 个答案:

答案 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() );