Un anagrama es una palabra o frase que resulta de la transposición de letras de otra palabra o frase. Dicho de otra forma, una palabra es anagrama de otra si las dos tienen las mismas letras, con el mismo número de apariciones, pero en un orden diferente.
Aquí algunos ejemplos:
Veamos cómo podemos comprobar si es un anagrama utilizando Javascript.
Recordemos, primero, algunas reglas.
Sabiendo las reglas de arriba, escribimos una función que queda así. Estamos utilizando algunas características de ES6. Abajo está el mismo código escrito para una versión anterior de Javascript.
Con una versión anterior de Javascript, queda así:
Si partimos el código a su máxima expresión, se vería así:
Hagamos algo que yo llamo caso de uso. Supongamos que palabra = “Nacionalista” y posibleAnagrama es “Altisonancia”. Veamos lo que pasaría…
Ahora, palabra es nacionalista y posibleAnagrama es altisonancia.
En este caso, palabra es [“n”, “a”, “c”, “i”, “o”, “n”, “a”, “l”, “i”, “s”, “t”, “a”] y posibleAnagrama es [“a”, “l”, “t”, “i”, “s”, “o”, “n”, “a”, “n”, “c”, “i”, “a”].
Lo ordenamos sin indicarle cómo, pero por defecto ordenará nuestras letras en orden lexicográfico. Es como ordenarlas según el alfabeto.
Ahora palabra es [“a”, “a”, “a”, “c”, “i”, “i”, “l”, “n”, “n”, “o”, “s”, “t”] y posibleAnagrama es [“a”, “a”, “a”, “c”, “i”, “i”, “l”, “n”, “n”, “o”, “s”, “t”].
Unimos el arreglo para convertirlo a cadena; por lo que palabra es aaaciilnnost y posibleAnagrama es aaaciilnnost. Finalmente comparamos si ambas cadenas son iguales.
En caso de que una palabra tuviera menos o más letras, se evaluarían como cadenas distintas. Lo mismo pasaría si midieran lo mismo pero no tuvieran exactamente las mismas letras.
Aquí dejo algunas pruebas en un replit. Para probar utilizo este código:
Con esta salida:
¿Maggie es anagrama de Maggie? false ¿Gato es anagrama de Perro? false ¿Conversadora es anagrama de Conservadora? true ¿Zascandilear es anagrama de Escandalizar? true ¿Fresa es anagrama de Frase? true ¿Aloh es anagrama de Hola? true
Como se puede comprobar abajo:
Ahora que leo bien la definición de anagrama, creo que tenemos un error en nuestro programa. Ya que ahí dice que es anagrama si tiene el mismo número de letras en un orden distinto.
Todo bien hasta aquí, el problema es que si llamamos a la función con “hola” y “hola” devolverá true, pero “hola” no es un anagrama de “hola” (tienen las mismas letras, pero no en diferente orden). En fin, si queremos evitar esto, podemos hacer algo así:
En ocasiones es necesario leer los pixeles y colores de una imagen con JavaScript del…
Siguiendo con los tutoriales de listas desplegables o select con JavaScript, vamos a ver cómo…
Hoy vamos a ver programar la impresión de un PDF generado a partir de HTML…
En este tutorial básico de JavaScript con HTML vamos a ver cómo llenar una lista…
En este artículo se presenta una guía para imprimir un PDF a partir de una…
En este post voy a enseñarte cómo imprimir un PDF a partir de su representación…
Esta web usa cookies.