GithubHelp home page GithubHelp logo

kenzie-academy-brasil-developers / extra-assessment-anagrams-part-1-sprint-4-vitorsoaresf Goto Github PK

View Code? Open in Web Editor NEW
0.0 2.0 1.0 1.22 MB

extra-assessment-anagrams-part-1-sprint-4-vitorsoaresf created by GitHub Classroom

JavaScript 99.98% HTML 0.01% CSS 0.01%

extra-assessment-anagrams-part-1-sprint-4-vitorsoaresf's Introduction

Extra: Anagramas Parte 1

Anagramas

Os anagramas são palavras formadas pelas mesmas letras, mas em ordem diferente.

Por exemplo, "ator" e "tora" são anagramas.Faça o push do código para o seu repositório GitHub e implemente-o GitHub pages. No Canvas, por favor, envie sua url do GitHub Pages: (ex: https://nomedeusuario.github.io/katas2) e envie o link do seu repositório nos comentários. Após ser a correção, seu projeto deverá ficar privado.

Há um dicionário de palavras em forma de array disponível em palavras.js. NÃO CLIQUE NO LINK. Clique com o botão direito sobre o link, escolha "Save link as..." ou "Salvar link como" e aí sim salve-o em seu diretório anagrams1 como um novo arquivo chamado palavras.js que você salvará em sua pasta de projetos.

Você irá implementar uma função chamada getAnagramsOf(input) que pega um valor de entrada de texto de um campo de entrada em seu html, e retorna um array dos anagramas contidos no texto inserido. Por exemplo, a palavra "ator" digitada na caixa de texto deve retornar um array similar a ["ator", "rato", "tora", "rota"]. Você irá criar uma página com uma caixa de texto para digitar uma palavra e um botão que, quando clicado, irá disparar sua função getAnagramsOf para encontrar todas as palavras do dicionário que forem anagramas do texto inserido.

Início

Faça o push do código para o seu repositório GitHub e implemente-o GitHub pages. No Canvas, por favor, envie sua url do GitHub Pages: (ex: https://nomedeusuario.github.io/katas2) e envie o link do seu repositório nos comentários. Após ser a correção, seu projeto deverá ficar privado. Crie um novo diretório chamado anagrams1 para este projeto. Crie um arquivo index.html e um arquivo anagrams1.js. Faça o commit e o push desses arquivos para um novo repositório no GitLab. É importante seguir as instruções para os nomes para que os testes funcionem

Você precisará incluir o arquivo palavras.js como um script. Adicione em seu arquivo html a seguinte tag de script para ele:

<script type="text/javascript" src="palavras.js"></script>

E em seguinda faça a inclusão da tag de script para o anagrams1.js em seu arquivo html:

<script type="text/javascript" src="anagrams1.js"></script>

Lembre-se também de adicionar o arquivo ao seu repositório git.

Em seguida, você precisará de um modo que o usuário possa inserir o texto. O seguinte trecho de HTML define uma caixa de texto e um botão:

<div>
  <input type="text" id="input" size="40" />
  <button id="findButton">Encontrar Anagramas</button>
</div>

Isoladamente, seu botão não faz nada. Você irá atribuir uma função de handler de clique que será executada quando ele for clicado:

const button = document.getElementById("findButton");
button.addEventListener("click", function () {
  // seu código vai aqui
});

Dentro da função handler de vlique, você precisará de um modo de acessar o conteúdo digitado na caixa de texto quando o botão for clicado. Então você pode passar o conteúdo para sua função getAnagramsOf como argumento:

button.addEventListener("click", function () {
  let typedText = document.getElementById("input").value;
  getAnagramsOf(typedText);
});

Detectando Anagramas

Você precisa de um modo de testar se duas strings contém as mesmas letras em ordem diferente.

Considere o efeito de ordenar as letras alfabeticamente. Isso coloca as letras na ordem padrão, independentemente de como elas são originalmente ordenadas nas palavras. Aqui há uma função que você pode usar para realizar isso:

function alphabetize(a) {
  return a.toLowerCase().split("").sort().join("").trim();
}

Veja o efeito de aplicar a função alphabetize a algumas palavras:

alphabetize("ator") retorna "aort"

alphabetize("rota") retorna "aort"

alphabetize("tora") retorna "aort"

alphabetize("rato") retorna "aort"

alphabetize("sapo") retorna "aops"

alphabetize("sopa") retorna "aops"

As formas ordenadas alfabeticamente são as mesmas para cada palavra em um conjunto de anagramas. Tanto "sapo" quanto "sopa" formam "aops" quando são ordenadas alfabeticamente. Similarmente, "ator", "rota" e "tora" ficam iguais quando são ordenadas alfabeticamente. Portanto, você pode usar esta função alphabetize para ajudá-lo a determinar se duas palavras são anagramas.

Depois de obter seu array de resultados, em sua função, crie um novo Elemento e defina seu textContent = seu array de resultados. Em seguida, use document.body.appendChild() para adicionar seu novo elemento à página. Por último, use return para retornar o array de resultados.

Exemplo concluído

Aqui está uma captura de tela de uma implementação concluída:

Envio

Faça o push do código para o seu repositório GitHub, altere a visibilidade do repositório para internal e implemente-o GitHub pages. No Canvas, por favor, envie sua url do GitHub Pages: (ex:https://nomerandomico.pages.github.io/) e envie o link do seu repositório nos comentários. Atenção, seu repositório deverá ser compartilhado apenas com a organização. (Internal)

extra-assessment-anagrams-part-1-sprint-4-vitorsoaresf's People

Contributors

github-classroom[bot] avatar vitorsoaresf avatar

Watchers

 avatar  avatar

Forkers

vitorsoaresf

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.