Comencé con lo que pensé que era una idea simple para una actividad de clase para nuestra unidad de JavaScript, pero no fue la mejor manera de leer una matriz 2D de JavaScript basada en una entrada del usuario.
¿Cómo puedo hacer que busque la entrada de los usuarios en el primer índice de la matriz y genere el valor en el segundo índice? Necesito decirle en algún momento qué índice leer y cuál generar, a través de una sintaxis similar a [0] [1], imagino, pero la prueba y el error me están llevando lejos.
¿Quizás hay una mejor manera?
Esto es lo que tengo hasta ahora, que solo genera la primera entrada de matriz en su totalidad: "A", "Angelic"
var firstNames = [ ["A","Angelic"], ["B","Blustery"], ........ ["Y","Cheery"], ["Z","Dancy"] ]; var firstInitial = window.prompt("What is the first letter of your first name: ").toUpperCase(); let elfFirstName = firstNames.find(firstSearch); function firstSearch(firstInitial) { return firstInitial; } window.alert("Your Elf Name is " + elfFirstName); </script>``` ThanksNo usas find right. Necesita mirar el primer índice de su matriz que se pasa.
function firstSearch(item) { return item[0] === firstInitial; }Asi que
var firstNames = [ ["A", "Angelic"], ["B", "Blustery"], ["Y", "Cheery"], ["Z", "Dancy"] ]; var firstInitial = window.prompt("What is the first letter of your first name: ").toUpperCase(); const elfFirstName = firstNames.find(firstSearch)[1]; function firstSearch(item) { return item[0] === firstInitial; } window.alert("Your Elf Name is " + elfFirstName);La mejor solución, como señalé en los comentarios, es usar una matriz
var firstNames = { A: "Angelic", B: "Blustery", Y: "Cheery", Z: "Dancy" }; var firstInitial = window.prompt("What is the first letter of your first name: ").toUpperCase(); const elfFirstName = firstNames[firstInitial]; window.alert("Your Elf Name is " + elfFirstName);Podrías tomar un objeto con las iniciales como llaves.
const firstNames = { A: "Angelic", B: "Blustery", Y: "Cheery", Z: "Dancy" }, firstInitial = window.prompt("What is the first letter of your first name: ")[0].toUpperCase(), elfFirstName = firstNames[firstInitial]; console.log("Your Elf Name is " + elfFirstName);