Javascript 循环不会在JS中中断

Javascript 循环不会在JS中中断,javascript,jquery,arrays,loops,Javascript,Jquery,Arrays,Loops,当我从迭代中得到正确的值时,我面临着一个困惑:如何终止循环。我在下面粘贴了一段代码片段。我要做的是,我有一个名为skillID的字符串,另一个名为emplSkillLevel的数组。 当skillID在循环中匹配时,它会在设置字符串中的值后返回字符串,但在某些点上循环不会打断它 我怎样才能终止它 setCellValue: function(skillID,emplSkillLevel){ var cellVal=0; $.each(emplSkil

当我从迭代中得到正确的值时,我面临着一个困惑:如何终止循环。我在下面粘贴了一段代码片段。我要做的是,我有一个名为skillID的字符串,另一个名为emplSkillLevel的数组。 当skillID在循环中匹配时,它会在设置字符串中的值后返回字符串,但在某些点上循环不会打断它

我怎样才能终止它

setCellValue: function(skillID,emplSkillLevel){ 
           var cellVal=0;
           $.each(emplSkillLevel, function(index1, item1) {
               var emplSkillLevelID = emplSkillLevel[index1].split("-");
               if(emplSkillLevelID[0] == skillID){
                   cellVal = emplSkillLevelID[1];
                   return cellVal;
                   break;
               }
               else{
                   cellVal=0;
                   return cellVal;
               }

           });

       }

要中断
jQuery$。每个
循环都需要
返回false而不是
中断
。当您返回非false值时,这实际上意味着
继续

此外,不能使用
返回cellVal和之后的
中断-返回已剪切执行

尝试使用
$(empskilllevel).each(…)
而不是
$。each(empskilllevel…)


您从传递给
$的内部函数返回。每个

如果不想迭代所有元素,最好使用本机forEach或简单循环:

 setCellValue: function(skillID,emplSkillLevel){ 
       for (var index1=0; index1<emplSkillLevel.length; index1++) {
           var item1 = emplSkillLevel[index1];
           var emplSkillLevelID = emplSkillLevel[index1].split("-");
           if(emplSkillLevelID[0] == skillID){
               return emplSkillLevelID[1];
           }
       }
       return 0;
   }
setCellValue:函数(skillID,emplSkillLevel){

对于(var index1=0;index1您不能从$each返回值。您需要全局变量来存储创建的值。
如何打破

这里其他人提供的答案也应该对你有所帮助。这是我的看法,但你必须做出一些改变

var setCellValue =  function(skillID, emplSkillLevels){ 
    var cellVal = 'None';

    $.each(emplSkillLevels, function(index, item) {
        var arrSkillLevel = emplSkillLevels[index].split("-");

        if(arrSkillLevel[0] == skillID){
          cellVal = arrSkillLevel[1];

          return false;
        }
    });

    return cellVal;
}

var emplSkillLevels = ["1-Basic", "2-Intermediate", "3-Advanced"];

console.log(setCellValue(2, emplSkillLevels));

return已经退出函数,因此以后不能执行任何操作。至于如何打破每个循环,请参阅文档:为什么这会得到这么多反对票?可能是因为“让我们在不知道它做什么的情况下使用jQuery”-也就是说我没有否决这个,但这可能是原因。那么我如何返回值?那么我如何返回值?使用jQuery.map(),正如我在回答中所写的。添加了一个如何使用itor
$(数组)。each()
进行单值返回的示例