Javascript 如果条件为真,则停止函数
我使用ArrayJavascript 如果条件为真,则停止函数,javascript,jquery,Javascript,Jquery,我使用Arraymap()方法检查数组中的每个元素,如果if子句中的条件为true,我调用另一个函数 $.map(data['icd'], function (field, i) { if(field.nummer == search){ Diagnose.single(field.id); }; }); 现在我的问题是,如果元素填充了if条件,我想停止map方法。因为我注意到,例如,当我有6个元素填充条件时,函数Diagnose.single(field.id)被调用
map()
方法检查数组中的每个元素,如果if子句中的条件为true,我调用另一个函数
$.map(data['icd'], function (field, i) {
if(field.nummer == search){
Diagnose.single(field.id);
};
});
现在我的问题是,如果元素填充了if条件,我想停止map
方法。因为我注意到,例如,当我有6个元素填充条件时,函数Diagnose.single(field.id)代码>被调用6次而不是一次
我试过:
$.map(data['icd'], function (field, i) {
if(field.nummer == search){
Diagnose.single(field.id);
return true;
};
});
但这不管用!我能做些什么呢?谢谢使用带中断语句的简单for循环:
for (var i = 0; i < data['icd'].length; i++) {
if (data['icd'][i].nummer == search){
Diagnose.single(data['icd'][i].id);
break;
};
}
for(变量i=0;i
map
用于不同的任务。返回false并将.map替换为.each
$.each(data['icd'], function (field, i) {
if(field.nummer == search){
Diagnose.single(field.id);
// Need to return false, return true will go for a success and still continue.
return false;
};
});
我想在你的情况下,你应该使用。然后,您可以返回false
以跳出循环
$.each(data['icd'], function (field, i) {
if(field.nummer == search){
Diagnose.single(field.id);
return false;
};
});
或者更好,使用一个简单的for循环@disq shared。如果您不需要IE8支持,您可以使用Array.prototype.some
data['icd'].some(function (field, i) {
if(field.nummer == search){
Diagnose.single(field.id);
return true;
};
});
你试过休息吗<代码>这不起作用
。。。请详细说明。这违背了map
的目的,请使用$。每个函数只需阅读map的说明即可。自己做一个for循环。写一个带有for循环的函数有那么难吗???我认为这是行不通的。。。在for map中,它声明:函数可以返回:1)转换后的值,该值将映射到结果数组。2) null或未定义,以删除该项。3) 一个值数组,它将被展平为完整数组。抱歉,您还必须将.map替换为.each,我已经编辑了我的初始答案。