Yo mismo escribí un pequeño guión que convierte palabras en inglés a palabras élficas.
var clickMe = document.querySelector('#button-7993f34d'); clickMe.addEventListener('click', function (event) { setTimeout(function() { var checkSelect = document.querySelector("select"); // Lang checkSelect.innerHTML = checkSelect.innerHTML.replace('Tree', 'Adahl'); checkSelect.innerHTML = checkSelect.innerHTML.replace('Forest', 'Adahlen'); checkSelect.innerHTML = checkSelect.innerHTML.replace('Arrow', 'Assan'); }, 0); }); <select> <option>Tree</option> <option>Forest</option> <option>Arrow</option> </select> <button id="button-7993f34d">click me</button>Todo funciona bien. Sin embargo, me gustaría presentar las palabras en forma de matriz. Por ejemplo:
langs = [ {"eng": "Tree", "elf": "Adahl"}, {"eng": "Forest", "elf": "Adahlen"}, {"eng": "Arrow", "elf": "Assan"} ]Y no repetirlo:
checkSelect.innerHTML = checkSelect.innerHTML.replace('Tree', 'Adahl');Este hilo fue el más cercano a mi solución: Usar el método de cadena de reemplazo dentro de forEach Sin embargo, no pude adaptarlo a mi script.
¿Es posible en mi caso? Traté de encontrar una solución similar con la función de reemplazo. Desafortunadamente, fue en vano. ¿Puedes aconsejar algo?
Aún así, sigo intentándolo, si encuentro una solución antes de responder, definitivamente la compartiré.
Aquí hay una función muy básica que reemplaza las ocurrencias de sus términos en inglés con términos élficos.
function replaceText(text) { const langs = [ {"eng": "Tree", "elf": "Adahl"}, {"eng": "Forest", "elf": "Adahlen"}, {"eng": "Arrow", "elf": "Assan"} ]; let textToReturn = text; langs.forEach((word) => { textToReturn = textToReturn.replaceAll(word.eng, word.elf); }); return textToReturn; }; console.log(replaceText("My Tree is in the Forest"));También puede hacer esto con una declaración de cambio.
switch(wordInEnglish) { case "Tree": return "Adahl"; case "Forrest": return "Adahlen"; case "Arrow": return "Assan"; }