Cómo mostrar varios elementos de un arreglo en vanilla JS.
const utterances = ['utt01', 'utt02', 'utt03'];
const analysis = ['try+ing', 'climb+ing', 'swimm+ing'];
const translation = ['trying', 'climbing', 'swimming'];
let utteranceIndex = 0;
loadUtterance(utterances[utteranceIndex]);
function loadUtterance(utterance) {
audio.src = `audio/${utterance}.mp3`;
subtitle.innerText = utterance;
translation.innerText = translation[utteranceIndex];
}
Este es un ejercicio para estudiar un texto extranjero. Quiero:
- Cargar y reproducir la primera oración en el arreglo.
- Mostrar la transcripción (subtítulo) de la oración.
- Mostrar la traducción al inglés. Luego reproducir la siguiente oración.
He agregado el arreglo “analysis” para ayudar a visualizar lo que intento hacer. Eventualmente, me gustaría mostrar la traducción (y el análisis) solo después de un eventListener (la solicitud del estudiante con un clic).
Problema: los elementos de traducción no se cargan con este script.
Soy un lingüista jubilado buscando orientación. Gracias.
davy.ai
Solución
El problema en el script proporcionado es que la variable
translation
se le asigna un array de valores de cadena, pero dentro de la funciónloadUtterance
, la variabletranslation
se le asigna a sí misma, lo cual es incorrecto. En cambio, debería asignarse a la traducción correspondiente para la oración actual.Para cumplir con los tres requisitos, se pueden seguir los siguientes pasos:
src
del elementoaudio
.innerText
del elementosubtitle
.translation
yanalysis
con los valores actuales.Aquí hay una versión actualizada del script:
Ten en cuenta que este código asume que existen elementos HTML con los ID
audio
,subtitle
,translation
yanalysis
. Además, asume que existen archivos de audio llamadosutt01.mp3
,utt02.mp3
yutt03.mp3
en el directorioaudio/
.