¿Cómo puedo acceder a cualquier elemento de una lista en una función? Solo puedo usar un elemento de lista específico en una función y no puedo descifrar cómo usar cualquier elemento de lista que quiera. Si quiero usar el segundo elemento de una lista, no tengo idea de cómo hacerlo.
var database = [ { username: "captain", password: "america" }, { username: "bruce", password: "banner" }, { username: "tony", password: "stark" } ] var usernamePrompt = prompt("Enter your name: "); var passwordPrompt = prompt("Enter your password: "); function signIn(user, pass) { if (user === database[0].username && pass === database[0].password) { alert("Welcome" + database[0].username) } else { alert("Wrong username or password!") } } signIn(namePrompt, realNamePrompt)Mmmm para acceder a cualquiera, necesitaría pasar el índice al que desea acceder así
function check(user, pass, index) { if (user === database[index].username && pass === database[index].password) { return user; } return null; }entonces tal vez podría hacer un ciclo, fuera de esta función para cubrir todos los índices, algo como esto:
for (int i = 0; i < USERS_LENGTH; i++) { const user = check (user, pass, i); if (user) return user; }
o un enfoque más funcional con Array.find , algo como esto:
database.find(u => check(u))
AUNQUE, no creo que este sea el enfoque correcto para manejar inicios de sesión de bases de datos reales, esto es fuerza bruta, y en una base de datos de un millón de registros, esto llevará una eternidad.
Puede usar el método de búsqueda en javascript ( https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/find ).
var database = [ { username: "captain", password: "america" }, { username: "bruce", password: "banner" }, { username: "tony", password: "stark" } ]; function signIn(user, pass) { const user= database.find((data) => data.username === user && data.password === pass); if (user) { alert("Welcome" + user.username) } else { alert("Wrong username or password!") } }