停止$。每个方法时所需的变量发现
问题描述:
我有通过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...");
}
});
问题不过是,我得到这个在我的控制台日志:
所以从我个人理解,在$。每个方法,如上所述,在JSON的每一个对象去了。如何才能找到所需的变量(在本例中为hero
),以便停止每种方法?我认为这是出于性能目的所需?
答
您需要从每个处理程序方法返回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...");
}
});
我们可以通过在特定的迭代突破$。每()循环的进一步处理使 回调函数返回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;
类似的问题在这里http://stackoverflow.com/questions/1784780/how-to-break-out-of-jquerys-each-loop –
@codingstill不好意思啊。我没有找到它,因为我搜索了像'停止每种方法'的东西。我弄糊涂了所有的名字:方法函数循环突出等 – k4kuz0