new*_*man 1 javascript arrays for-loop if-statement
我很尴尬地问这样一个基本问题.但如果这是我的知识中的一个基本或简单的差距,我宁愿得到一个解释,为什么我可以尽早开始养成良好的习惯.
我有一个函数,它接受一个字符串作为参数,并将其与数组值进行比较.
function validateHello(greetings){
var hello = ['hello','ciao','salut','hallo', 'hola', 'ahoj','czesc'];
for(var i = 0; i < hello.length; i++){
if(greetings === hello[i]){
return true;
}else{
return false;
}
}
}
Run Code Online (Sandbox Code Playgroud)
似乎每次我运行这个for循环时,它只检查第一个数组hello[0]然后它似乎中断.我怎么能阻止这种情况发生?我continue;在返回true之后尝试使用但是也没有修复它.我觉得我应该知道这一点,但我完全是在脑力训练,无法弄清楚原因.谢谢!
这是因为你的return false声明,你应该把它放在循环之外并删除else声明:
function validateHello(greetings){
var hello = ['hello','ciao','salut','hallo', 'hola', 'ahoj','czesc'];
for(var i = 0; i < hello.length; i++){
if(greetings === hello[i]){
return true;
}
}
return false;
}
Run Code Online (Sandbox Code Playgroud)
说明:当greetings参数不等于第一个元素时,'hello'代码将执行该else语句,该语句返回false并停止函数执行.