如何从更高的功能返回

时间:2016-12-07 07:14:32

标签: javascript

例如:

function foo() {
  someArray.map(bar) { 
    if (whatever)
      return; // I want to return from the foo function
    return bar.something // Here I return to map function
  }
}

这是我目前的解决方案:

 let flag = false
 function foo() {
   someArray.map(bar) { 
     if (whatever){
       flag = true
     }
     return bar.something // Here I return to map function
   }
 }
 if (flag === true) {
   return;
 }

我想知道是否有更好的方法?

1 个答案:

答案 0 :(得分:0)

您无法破坏地图功能。但是你不使用map的结果。如果您想在任何条件之后中断map,可以使用some数组方法而不是它。

例如:

let flag = false;
function foo() {
   someArray.some(bar) { 
     if (!whatever){
         return false;
     }
     flag = true;
     return true;
   }
 }
 if (flag === true) {
   return;
 }

或者您可以调用some内的任何功能,而不是使用flag变量

function foo() {
   someArray.some(bar) { 
     if (!whatever){
         return false;
     }
     callYourCodeHere()
     return true;
   }
 }

或类似的东西:

function foo() {
   const anySuccess = someArray.some(bar) { 
     return !!whatever;
   }
   if(anySuccess) {
       callYourCodeHere();
   }
 }