找到所需变量时停止 $.each 方法[重复]

Posted

技术标签:

【中文标题】找到所需变量时停止 $.each 方法[重复]【英文标题】:Stop $.each method when desired variable found [duplicate] 【发布时间】:2014-03-12 00:48:33 【问题描述】:

我有一个 $.each 方法,它通过 JSON 搜索来查找变量,我正在使用以下代码:

$.each(heroes_json.heroes, function(key, val)
    if(val.id == hero)
        hero = val.localized_name;
        console.log("Hero name is "+hero);
        return;
    
    else
        console.log("Wrong hero, skipping...");   
            
);

但问题是我在控制台日志中得到了这个:

所以据我了解,如前所述,$.each 方法会遍历 JSON 中的每个对象。如何做到这一点,以便在找到所需的变量(在本例中为 hero)时,它会停止 each 方法?我假设这是出于性能目的而需要的?

【问题讨论】:

这里有一个类似的问题***.com/questions/1784780/… @codingstill 对不起。我没有找到它,因为我搜索了“停止每种方法”之类的东西。我对所有名称感到困惑:方法函数循环中断等。 【参考方案1】:

您需要从每个处理程序方法中返回 false 以停止循环的进一步处理

$.each(heroes_json.heroes, function (key, val) 
    if (val.id == hero) 
        hero = val.localized_name;
        console.log("Hero name is " + hero);
        //return false to stop the loop
        return false;
     else 
        console.log("Wrong hero, skipping...");
    
);

jQuery.each()

我们可以在特定的迭代中打破 $.each() 循环,方法是 回调函数返回假。返回非 false 与 a 相同 for 循环中的 continue 语句;它会立即跳到下一个 迭代。

【讨论】:

【参考方案2】:

你必须返回false才能突破each():

if (val.id == hero) 
    hero = val.localized_name;
    console.log("Hero name is " + hero);
    return false;

普通的return; 相当于返回undefined,在这种情况下each() 循环将继续。

【讨论】:

【参考方案3】:

您需要返回 false 才能打破循环。因此,在您的实例中,您将需要:

console.log("Hero name is " + hero);
return false; //this is instead of using return;

【讨论】:

以上是关于找到所需变量时停止 $.each 方法[重复]的主要内容,如果未能解决你的问题,请参考以下文章

当所需变量的数量未知时如何使用 tidyr::separate [重复]

如何从 php 代码中删除 each() [重复]

@RequestParam 和 @PathVariable 有啥区别 [重复]

如果未在Chrome中定义变量,脚本会立即停止[重复]

返回找到相邻的重复数字对所需的最少乘法次数

jquery foreach和each的区别