gpt4 book ai didi

Javascript 函数返回意外结果

转载 作者:行者123 更新时间:2023-12-03 13:19:23 26 4
gpt4 key购买 nike

我已经编写了大量的 Javascript,主要是使用 JQuery,但我在一些非常简单的事情上遇到了困难。

在下面的代码中(也找到了 here),我只是想在某些逻辑中使用 twoExists() 函数的 bool 返回值。我不知道为什么会发生这种行为,但它的工作原理与直觉相反。比如,如果我切换逻辑,我会得到我想要的结果。

<html>
<p>One</p>
<p>Two</p>
<p>Three</p>
<p>Four</p>
<strong></strong>
</html>

var myJS = {
twoExists: function() {
$("p").each(function() {
if($(this).text() == "Two") {
return true;
}
});

return false;
},
foo: function() {
if(myJS.twoExists()) {
$("strong").text("Found two");
}
else {
$("strong").text("Did not find two");
}
}

bar: function() {
if(! myJS.twoExists()) {
$("strong").text("Found two");
}
else {
$("strong").text("Did not find two");
}
}
}

myJS.foo(); // result: <strong>Did not find two</strong>
myJS.bar(); // result: <strong>Found two</strong>

最佳答案

我认为这可能是因为 jquery 中的 each 循环如何返回而发生的。 return true 的工作方式类似于普通 js 循环中的 continue 语句,我不认为它会从 twoExists 函数返回 - 相反它只会从当前迭代到下一个。也许试试这个:

twoExists: function() {
var found = false;
$("p").each(function() {
if($(this).text() == "Two") {
found = true;
}
});

return found;
},

关于Javascript 函数返回意外结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21505590/

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