【问题标题】:Putting for loop inside a function将for循环放入函数中
【发布时间】:2016-11-25 18:35:35
【问题描述】:

我试图在等于某个输入时停止我的 for 循环,我能够在函数之外实现这一点。例如,假设我将输入变量设置为“不泄漏”,我希望在数组命中“不”时停止循环并将其添加到设置为“泄漏”的关键字变量以输出“不泄漏”。但是,当我尝试将循环插入函数时,它会按预期停止工作并给出每个结果,直到输入变量等于文本变量(我不希望它这样做)。例如,它会输出“不泄漏”、“不泄漏”,当我只想输出“不泄漏”时,它就会停止。

我尝试过函数的各种格式,例如将函数设置为变量,给函数参数,以及将变量放在函数内部和外部零进度。似乎 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);

【问题讨论】:

  • 它在任何函数的内部和外部做完全相同的事情。你只是在不同的地方有console.log。也许你应该正确缩进你的代码,这样你才能看到。

标签: javascript loops for-loop


【解决方案1】:

您在循环中使用了 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();

【讨论】:

  • 右括号和console.log 不应缩进。我觉得这是悲伤的真正原因。
  • 我认为它会像这样简单,谢谢!
【解决方案2】:

您的 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() );

【讨论】:

    猜你喜欢
    • 2013-07-02
    • 1970-01-01
    • 2016-05-07
    • 1970-01-01
    • 2020-03-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多