为什么 for...of 语句中的三元运算符不起作用?
Why is the ternary operator in the for...of statement not working?
我不确定为什么三元运算符在此示例中不起作用。我以前见过它以类似的方式使用,但我无法让它在此测试中正常工作。任何帮助将不胜感激!
const numbers = [1, 2, 3, 4, 5];
console.log(includes(numbers, 4));
//This works fine
function includes(array, searchElement) {
for (let element of array)
if (element === searchElement)
return true;
return false;
}
这个解决方案工作正常,但是当我尝试使用三元运算符时,我总是得到 false。
console.log(includes2(numbers, 4));
function includes2(array, searchElement) {
for (let element of array) {
return (element === searchElement ? true : false);
}
}
让我们添加块并将条件运算符转换回 if
:
第一个例子:
function includes(array, searchElement) {
for (let element of array) {
if (element === searchElement) {
return true;
}
}
return false;
}
第二个例子:
function includes2(array, searchElement) {
for (let element of array) {
// return (element === searchElement ? true : false);
if (element === searchElement) {
return true;
}
return false;
}
}
注意 return false;
语句的位置。在第一种情况下,您 return 在循环之后。在第二种情况下,您 return 在循环内,即函数将始终在循环的第一次迭代中终止。
我不确定为什么三元运算符在此示例中不起作用。我以前见过它以类似的方式使用,但我无法让它在此测试中正常工作。任何帮助将不胜感激!
const numbers = [1, 2, 3, 4, 5];
console.log(includes(numbers, 4));
//This works fine
function includes(array, searchElement) {
for (let element of array)
if (element === searchElement)
return true;
return false;
}
这个解决方案工作正常,但是当我尝试使用三元运算符时,我总是得到 false。
console.log(includes2(numbers, 4));
function includes2(array, searchElement) {
for (let element of array) {
return (element === searchElement ? true : false);
}
}
让我们添加块并将条件运算符转换回 if
:
第一个例子:
function includes(array, searchElement) {
for (let element of array) {
if (element === searchElement) {
return true;
}
}
return false;
}
第二个例子:
function includes2(array, searchElement) {
for (let element of array) {
// return (element === searchElement ? true : false);
if (element === searchElement) {
return true;
}
return false;
}
}
注意 return false;
语句的位置。在第一种情况下,您 return 在循环之后。在第二种情况下,您 return 在循环内,即函数将始终在循环的第一次迭代中终止。