Métodos y propiedades de los Strings
Propiedad length y acceso a la cadena por índice
En este sentido una cadena responde a la propiedad length y a la notación por índice:
cadena[posicion] de la misma forma que los arrays y las colecciones.
Veamos un ejemplo para descomponer una cadena en un conjunto de elementos span, cada uno de ellos conteniendo un solo carácter de la cadena.
- Preparamos un bucle que recorra toda la cadena
- A cada iteración (cada letra de la cadena) generamos un span con el carácter y lo almacenamos en una variable de salida.
- Pasamos la salida al DOM
El método charAt() es equivalente a la psoición por índice, devuelve el cáracter en esa
posición de la cadena: cadena[i] = cadena.charAt(i)
function casoUno() {
let cadena = document.querySelector('#in_cadena').value;
let salida = '';
for (let i = 0; i < cadena.length; i++) {
const caracter = cadena[i];
salida += `<span>${caracter}</span>`;
}
document.querySelector('#caso1').innerHTML = salida;
}
Juego del ahorcado
Fase inicial. Preparar el casillero con las letras
Se trata de escribir la palabra en un input y reemplazar cada una de sus letras por un guión.
- Guardar en una variable el texto del input que proporciona la palabra oculta
- Crear un bucle con las mismas repeticiones que letras contiene la palabra oculta, generando un elemento span con un guión como contenido en cada iteración.
- Pasamos los span al DOM y borramos el contenido del input
let palabra_oculta;
function comienzaAhorcado() {
palabra_oculta = document.querySelector('#in_ahorcado').value;
let casillas = '';
for (let i = 0; i < palabra_oculta.length; i++) {
casillas += '<span>-</span>';
}
document.querySelector('#casillero').innerHTML = casillas;
document.querySelector('#in_ahorcado').value = '';
}
Fase 2. Propocionamos una letra y comprobamos si forma parte de la palabra oculta. En caso afirmativo la mostramos en el casillero, en caso contrario sumamos un error y guardamos la letra equivocada.
- Si la letra está en la palabra llamo a la función que gestiona acierto, en caso contrario a la que gestiona el error, además de mostrar un mensaje personlizado en cada caso
- El acierto consiste en comparar cada letra de la palabra oculta con la letra proporcionada, y cuando sean iguales colocar la letra como textContent del span con la misma posición que la letra encontrada
- El fallo se gestiona añadiendo la letra introducida a la colección de letras falladas
function compruebaLetra() {
let letra = document.querySelector('#in_letra').value;
let mensaje = '';
if (palabra_oculta.indexOf(letra) != -1) {
mensaje = 'letra encontrada';
muestraLetra(letra);
} else {
mensaje = 'letra fallada';
letraFallada(letra);
}
document.querySelector('#mens_letra').textContent = mensaje;
}
function letraFallada(fallo) {
document.querySelector('#out_falladas').textContent += fallo;
}
function muestraLetra(acertada) {
let coleccion_casillas = document.querySelectorAll('#casillero span');
for (let i = 0; i < palabra_oculta.length; i++) {
const letra_oculta = palabra_oculta[i];
if (letra_oculta == acertada) {
coleccion_casillas[i].textContent = acertada;
}
}
}
Letras falladas: