停止$。每个方法时所需的变量发现

问题描述:

我有通过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..."); 
    }   
}); 

问题不过是,我得到这个在我的控制台日志:

enter image description here

所以从我个人理解,在$。每个方法,如上所述,在JSON的每一个对象去了。如何才能找到所需的变量(在本例中为hero),以便停止每种方法?我认为这是出于性能目的所需?

+0

类似的问题在这里http://stackoverflow.com/questions/1784780/how-to-break-out-of-jquerys-each-loop –

+0

@codingstill不好意思啊。我没有找到它,因为我搜索了像'停止每种方法'的东西。我弄糊涂了所有的名字:方法函数循环突出等 – k4kuz0

您需要从每个处理程序方法返回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()

我们可以通过在特定的迭代突破$。每()循环的进一步处理使 回调函数返回false。返回非错误与for循环中的 continue语句相同;它会立即跳到下一个 迭代。

您必须返回false打出来的each()

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

平原return;等于返回undefined,和each()循环将继续在这种情况下。

您需要返回false才能打破循环。因此,在你的情况下,你将需要:

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