Hur man bryter/fortsätter över nästlade for each-loopar i TypeScript


Jag försökte använda break inuti en inbäddad for each-loop och det står jump target cannot cross function boundary. Vänligen låt mig veta hur jag kan bryta en inbäddad for each-loop när ett visst villkor uppfylls i TypeScript.

groups =[object-A,object-B,object-C]
    groups.forEach(function (group) {
    // names also an array
        group.names.forEach(function (name) {
    
        if (name == 'SAM'){
         break; //can not use break here it says jump target cannot cross function boundary
      }
    
    }
    
    }

Svar #1

forEach accepterar en funktion och kör den för varje element i arrayen. Du kan inte bryta loopen. Om du vill avsluta från en enskild körning av funktionen använder du return.

Om du vill kunna bryta loopen måste du använda for..of-loopen:

  for(let name of group.names){
    if (name == 'SAM') {
      break;
    }
  }

Svar #2

ForEach stöder inte break, du bör använda return

  groups =[object-A,object-B,object-C]
        groups.forEach(function (group) {
        // names also an array
            group.names.forEach(function (name) {

            if (name == 'SAM'){
             return; //
          }
     }
   }

Relaterade artiklar