Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

169
Visualizações
trouble compreending how to stop the loop if true

it's my first post here and I'm trying to do a freecodecamp exercise.

Here's my code:

function mutation(arr) {
  let newArr = arr[0].toLowerCase();
  let arrNew = arr[1].toLowerCase();
  let test = newArr.split(' ');
  let newTest = arrNew.split(' ');

  for (let i=0; i < test.length; i++) {
    for (let j=0; j < newTest.length; j++) {
      if (newTest[j] === test[i]) {
        return true;
      }
    }
  }
  return false;
}

mutation(["hello", "hey"]);

The exercise is "Mutations" and I need to return true if the 1st string on the array has all the letters from the 2nd. I'm trying to understand how to stop the loop when the if statement is true and save it.

Thanks in advance and sorry if I didn't explain myself correctly.

about 4 years ago · Juan Pablo Isaza
3 Respostas
Responde à pergunta

0

For your question

return will exit the function and therefore will exit the loop.
From that we know that if your function returns false the condition newTest[j] === test[i] was never verified.

Hint for the exercise

You can suppose that the first word has all the letters from the second, iterate just like you're doing right now and check if you find a counter-example !

about 4 years ago · Juan Pablo Isaza Relatório

0

The following code should help you.

function mutation(arr) {
    let newArr = arr[0].toLowerCase();
    let arrNew = arr[1].toLowerCase();
  
    for (let i=0; i < newArr.length; i++) {
        if (arrNew.indexOf(newArr[i]) == -1) {
            return false;
        }
    }
    return true;
}

mutation(["hello", "hey"]);

There is no need to use arrays. in JS, strings work like arrays and we can use a "for" loop.

about 4 years ago · Juan Pablo Isaza Relatório

0

If you want to utilize loops like in your example code here is a very verbose way to do so:

function mutation(arr) {
  let hasAllLetters = true;
  let stringToCompare = arr[0].toLowerCase();
  let referenceString = arr[1].toLowerCase();
  let hasCurrentLetter;
  
  for (let i=0; i < referenceString.length; i++) {
    hasCurrentLetter = false;
    
    for (let j=0; j < stringToCompare.length; j++) {
        
      if (referenceString[i] === stringToCompare[j]) {
        hasCurrentLetter = true;
        
        // break from the second loop as soon as the condition is satisfied
        break;
      }
    }
        
    if(!hasCurrentLetter){
      hasAllLetters = false;
      // as soon as there is at least one letter which does not exist from the reference string
      // break from the second loop and exit yielding the result false
      break;
    }
  }
  
  return hasAllLetters;
}

let res;

res = mutation(["hello", "goll"]);
console.log("res: ", res); // false

res = mutation(["hello", "olhh"]);
console.log("res: ", res); // true

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda