Letter Lookup pt-br Explainer

Explicação de Pesquisa de letra

Objetivo do desafio: Escreva uma função que pega uma string e um mapa de objeto de uma string e retorna true se todas as letras da string existirem no objeto ou false se elas não existirem.
Passo a passo da solução: Em um desafio posterior, você escreverá uma função que verifica se uma string é uma subsequência de outra string. Por enquanto, escreva uma função que simplesmente verifique se todas as letras de uma string existem na outra.

No último desafio, você criou uma função que transforma uma string em um mapa de objetos. A saída daquela função será usada como entrada para esta função.

Para começar, acrescente um laço para fazer a iteração pela string de entrada. Por exemplo:

for (let letter of word) {

}

Em seguida, acrescente uma if…else statement que verifique se uma propriedade com o nome do caractere atual existe no mapa. Se for encontrada uma letra, a função não precisa fazer nada, mas se a letrar não for encontrada, a função deve retornar falso. Deve ficar assim:

for (let letter of word) {
 if (map[letter] {
  
  } else {
    return false;
  }
}

Ao final da função, retornar true.

return true;

Esta linha de código só será executada se a função fizer a iteração por toda a string sem retornar falso para qualquer uma das letras.
Conceitos de JavaScript: Funções, Objetos, Strings, Propriedades, Laço for, If Statements, Notação de Colchete, Truthy e Falsy
Código Adicional (código oculto executado antes do código do desafio):
[detalhes]

let dictionaryWord = pickRandom([ 'able', 'peals', 'bale', 'kangaroo']);

let stringSequence = {
            a:[0],
            b: [1],
            p:[2,3,4],
            l:[5],
            e:[6,7]
        };

const makeMap = (o) => {
   var out = '';
   for (var p in o) {
      out += p + ': ' + '[' +  o[p] + ']' + ', ' ;
      console.log(out);
      out = ''
   }
   return o
};

[/details]

4 Likes

Consegui fazer.

imagem_2021-07-02_175448

2 Likes

Oi. Eu fiz tudo o que a Erica fez e não dá certo para mim. Vem um aviso assim: "após o laço for…of na última linha da função compareLetters, retorna true e fiquei parada aí. Será que alguém pode me dar uma dica.
Desde já, agradeço.

1 Like

Faltou" return true " na ultima linha de codigo.Espero ter ajudado.

3 Likes

ajudou mesmo!!!
Você e a Érica. São dois amores…

1 Like

Gente,onde é essa última linha que já coloquei return true e não deu?

1 Like

Oi Luciarita vc conseguiu? Pq estou com esse mesmo problema, já coloquei return true e não dá certo

1 Like

sim, deu certo. Você precisa colocar o return true no último parênteses. Olha… eu sofri um monte para fazer esse teste…

É mais ou menos assim:

Function compareLetters(word,map){

For (let letter of word) {if (map[letter] {

} else {

Return false;

}

}

Return true;

}

2 Likes

Obrigada! Deu certo, é pq eu estava com outro return true embaixo de tudo

GuguTiti2021

1 Like

que bom! não desista… à medida que você vai fazendo vai aprendendo mais e os outros desafios são bem divertidos.

1 Like

O meu fiz assim tb deu certo!

1 Like

Hummm…
Que bom.
Se funcionou parabéns

Consegui dessa maneira


O meu deu certo assim