gpt4 book ai didi

javascript - 函数在 jQuery 每个循环中间返回不正确的值

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

我遇到了奇怪的行为,我想在 jQuery Each 循环中间立即返回,我的期望是,下面的函数应该返回 TRUE (条件匹配)。但我还是错了。这在 Java 中可以工作,但在 JS/jQuery 中不起作用?

function returnFromLoop(eventIDs) {

jQuery.each(eventIDs, function(index, item) {
if (item.indexOf("TEST") != -1) {
return true;
}

});
return false;
}

var eventIDs = [];
eventIDs.push('abc');
eventIDs.push('defTEST');
eventIDs.push('ghi');

var result = returnFromLoop(eventIDs);
console.log('result = ' + result);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

最佳答案

jQuery 的 .each() 方法中的 return true 不会跳出循环。相反,您可以使用 return false 来跳出循环。

然后,为了捕获返回值,可以使用变量。在下面的代码片段中,我使用了变量returnValue。一旦退出循环,您就可以返回该变量。

来自http://api.jquery.com/jQuery.each/ :

We can break the $.each() loop at a particular iteration by making the callback function return false. Returning non-false is the same as a continue statement in a for loop; it will skip immediately to the next iteration.

function returnFromLoop(eventIDs) {
var returnValue = false;
jQuery.each(eventIDs, function(index, item) {
if (item.indexOf("TEST") != -1) {
returnValue = true;
return false; // Equivalent to break statement.
}
});
return returnValue;
}

var eventIDs = [];
eventIDs.push('abc');
eventIDs.push('defTEST');
eventIDs.push('ghi');

var result = returnFromLoop(eventIDs);
console.log('result = ' + result);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

关于javascript - 函数在 jQuery 每个循环中间返回不正确的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47250580/

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