我不确定在此示例中为什么三元运算符不起作用。我以前曾以类似的方式使用过它,但是在此测试中我无法使其正常工作。任何帮助将不胜感激!
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;
}
此解决方案效果很好,但是当我尝试使用三元运算符时,我总是会出错。
console.log(includes2(numbers, 4));
function includes2(array, searchElement) {
for (let element of array) {
return (element === searchElement ? true : false);
}
}
答案 0 :(得分:1)
让我们添加块并将条件运算符转换回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;
语句的位置。在第一种情况下,循环后返回。在第二种情况下,您将在循环内返回,即该函数将始终在循环的第一次迭代中终止。