Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如果我在一个函数中返回两次,第二个会覆盖第一个吗?_Javascript_Return - Fatal编程技术网

Javascript 如果我在一个函数中返回两次,第二个会覆盖第一个吗?

Javascript 如果我在一个函数中返回两次,第二个会覆盖第一个吗?,javascript,return,Javascript,Return,我正在用Javascript编写一个函数。基本上,如果数组第一个元素中的字符串包含数组第二个元素中字符串的所有字母,则它应该返回true。我正在输入[“hello”,“hey”] 我在第二种方法中哪里做错了?在第一种情况下,逻辑退出并返回值false,只要它满足您的情况下的条件(array.indexOf(string2[I])==-1) 在第二种情况下,数组的第一个元素不满足条件,并落入else条件,因此退出,返回true。在第一种情况下,逻辑退出并返回值false,只要它满足条件(array

我正在用Javascript编写一个函数。基本上,如果数组第一个元素中的字符串包含数组第二个元素中字符串的所有字母,则它应该返回
true
。我正在输入
[“hello”,“hey”]


我在第二种方法中哪里做错了?

在第一种情况下,逻辑退出并返回值
false
,只要它满足您的情况下的条件
(array.indexOf(string2[I])==-1)


在第二种情况下,数组的第一个元素不满足条件,并落入
else
条件,因此退出,返回
true

在第一种情况下,逻辑退出并返回值
false
,只要它满足条件
(array.indexOf(string2[i])=-1)
在您的情况下


在第二种情况下,数组的第一个元素不满足条件,并落入
else
条件,因此退出,返回
true

在第一种情况下,逻辑退出并返回值
false
,只要它满足条件
(array.indexOf(string2[i])=-1)
在您的情况下


在第二种情况下,数组的第一个元素不满足条件,并落入
else
条件,因此退出,返回
true

在第一种情况下,逻辑退出并返回值
false
,只要它满足条件
(array.indexOf(string2[i])=-1)
在您的情况下


在第二种情况下,数组的第一个元素不满足条件,并落入
else
条件,因此退出,并返回
true

第二个方法此时中断:

返回真值

当返回出现正匹配时,FOR循环终止

在初始版本中,由于只设置了
result=true
,因此
FOR
循环将继续,直到遇到FALSE,然后出现显式的
中断


但是,在另一个版本中,if语句将遇到
返回FALSE
返回TRUE
,它将只迭代一次,返回结果并结束FOR循环。

您的第二个方法在此点中断:

返回真值

当返回出现正匹配时,FOR循环终止

在初始版本中,由于只设置了
result=true
,因此
FOR
循环将继续,直到遇到FALSE,然后出现显式的
中断


但是,在另一个版本中,if语句将遇到
返回FALSE
返回TRUE
,它将只迭代一次,返回结果并结束FOR循环。

您的第二个方法在此点中断:

返回真值

当返回出现正匹配时,FOR循环终止

在初始版本中,由于只设置了
result=true
,因此
FOR
循环将继续,直到遇到FALSE,然后出现显式的
中断


但是,在另一个版本中,if语句将遇到
返回FALSE
返回TRUE
,它将只迭代一次,返回结果并结束FOR循环。

您的第二个方法在此点中断:

返回真值

当返回出现正匹配时,FOR循环终止

在初始版本中,由于只设置了
result=true
,因此
FOR
循环将继续,直到遇到FALSE,然后出现显式的
中断


但是,在另一个版本中,if语句将遇到
RETURN FALSE
RETURN TRUE
,它将只迭代一次,返回结果并结束FOR循环。

a
RETURN
语句立即终止函数。在第二个实现中,提前返回
false
确实是正确的,但是
return true
语句是错误的-它将在第一个元素上返回true,而第二个数组中不包含该元素。实际上,您正在否定循环-只检查第一个元素,并立即返回一个值

您在这里的目的是提前只返回
false
值:

for (i = 0; i < string2.length; i++) {
    if (array.indexOf(string2[i]) == -1) {
      return false;
    }
}
// If we finished the loop and haven't returned false, the return value is true:
return true;
for(i=0;i
A
return
语句立即终止函数。在第二个实现中,提前返回
false
确实是正确的,但是
return true
语句是错误的-它将在第一个元素上返回true,而第二个数组中不包含该元素。实际上,您正在否定循环-只检查第一个元素,并立即返回一个值

您在这里的目的是提前只返回
false
值:

for (i = 0; i < string2.length; i++) {
    if (array.indexOf(string2[i]) == -1) {
      return false;
    }
}
// If we finished the loop and haven't returned false, the return value is true:
return true;
for(i=0;i
A
return
语句立即终止函数。在第二个实现中,提前返回
false
确实是正确的,但是
return true
语句是错误的-它将在第一个元素上返回true,而第二个数组中不包含该元素。实际上,您正在否定循环-只检查第一个元素,并立即返回一个值

你在说什么
for (i = 0; i < string2.length; i++) {
    if (array.indexOf(string2[i]) == -1) {
      return false;
    }
}
// If we finished the loop and haven't returned false, the return value is true:
return true;