grep函数中的每个JavaScript
我在使用grep函数中的每个JavaScript,javascript,jquery,Javascript,Jquery,我在使用grep函数时遇到问题。我的代码是 var zapis = jQuery.grep(ListaGrupa, function(v, k) { console.log($(that).attr("kursid")); if (v.grupa.ID == $(that).attr("kursid")) { idZaBrisanje = v.kategorija.Id; return true; } if ($.each(v.grupa.Podgrupe, f
grep
函数时遇到问题。我的代码是
var zapis = jQuery.grep(ListaGrupa, function(v, k) {
console.log($(that).attr("kursid"));
if (v.grupa.ID == $(that).attr("kursid")) {
idZaBrisanje = v.kategorija.Id;
return true;
}
if ($.each(v.grupa.Podgrupe, function(kljuc, vrednost) {
if (vrednost.podgrupa.ID == $(that).attr("kursid")) {
idZaBrisanje = vrednost.podkategorija.Id;
return true;
}
}))
return false;
})[0];
但在每个范围内似乎都返回true,所以in不会影响grep函数,所以我得到的结果是空的。
有什么帮助吗?是的,本例中的
返回true
将指示每个函数继续迭代。它不会中断您的grep
功能
相反,您可能需要设置一个标志,然后返回false
,以便终止迭代:
var found = false;
$.each(function() {
if(condition) {
found = true;
return false;
}
});
if(found)
return true;
此外,$。每个
将始终返回迭代对象,该对象将始终是真实的,因此您不能在条件中以您正在执行的方式使用它
在这种情况下,您可能会重新考虑jQuery是否真的在帮助您。您可以考虑回到这里的正则for循环,这将允许您从迭代中立即返回<<代码> GRP函数。< /P>
for(var i = 0; l = v.grupa.Podgrupe; i<l; i++) {
var vrednost = v.grupa.Podgrupe[i];
if(condition)
return true;
}
for(变量i=0;l=v.grupa.Podgrupe;i