Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/436.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如果条件为真,则停止函数_Javascript_Jquery - Fatal编程技术网

Javascript 如果条件为真,则停止函数

Javascript 如果条件为真,则停止函数,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)被调用

我使用Array
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,我已经编辑了我的初始答案。