gpt4 book ai didi

带过滤器的 JavaScript if 语句将不起作用

转载 作者:行者123 更新时间:2023-12-01 01:13:31 25 4
gpt4 key购买 nike

我不明白为什么我总是得到传递到数组中的值,而 if 语句不起作用?

预期输出是“Orange”,但是我需要将两个字符串变量传递到函数中,并有一个 if 语句返回 true 或 false。无论我在测试中输入什么内容以传递到 elementOne 并检查 elementTwo,我都会得到 elementOne 的值,但无法使输出 = false。

此代码不得从以下数组和函数调用中更改。

var fruit = ["Apple", "Orange", "Strawberry"];
var elementTwo = "Apple"
function favoriteFruit(elementOne, elementTwo) {
if (elementOne === elementTwo)
return true;
else
return false;
}



const result = fruit.filter((elem) => {
return favoriteFruit("Apple", elementTwo);
});
console.log (result)

最佳答案

您只需检查 "apple""apple" ,它们将始终执行为 true。您需要将 return favoriteFruit("Apple", elementTwo); 替换为 return favoriteFruit(elem, elementTwo);。下面的代码片段适合您。

注意:我还在 if/else 语句后面添加了大括号。尽管没有必要(如果没有括号,它仍然可以工作),但包含它们仍然是一个很好的做法。

例如,

if (true)
//action

是一样的
if (true) {
//action
}

但是

if (true) 
//action1
//action2

是一样的
if (true) {
//action1
}
//action2

TL;DR: 在 if/else 语句之后始终使用大括号。

更新:我刚刚意识到您可以完全摆脱 if 语句。在 if 语句中,如果 elementOne == elementTwo 为 true,则返回 true。如果 elementOne == elementTwo 为 false,则返回 false。看到图案了吗?

您可以简单地返回 elementOne == elementTwo 这与您正在做的事情相同。

var fruit = ["Apple", "Orange", "Strawberry"];
var elementTwo = "Apple"

function favoriteFruit(elementOne, elementTwo) {
return elementOne == elementTwo
}



const result = fruit.filter((elem) => {
return favoriteFruit(elem, elementTwo);
});
console.log(result)

关于带过滤器的 JavaScript if 语句将不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54965005/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com