Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

295
Vistas
No se puede obtener el valor de la matriz

Todavía no puedo entender mi error con este código. Todo lo que quiero: a través del aviso , obtenga toda la lista de usuarios (nombre / apellido)

 function UserList() { let users = []; while (true) { let response = prompt('Please, enter your name surname?'); if (response == null) { alert('cancel'); break; } users.push(response.split(' ')); } return users; } function User() { this.name = userList[0]; this.surname = userList[1]; this.regDate = new Date; for (i = 0; i < userList.length; ++i) { console.log('Name: ' + this.name + ' Surname: ' + this.surname + '. Date of registration : ' + this.regDate) } } let userList = new UserList(); let user = new User();

Y me enfrenté a un malentendido de por qué no puedo obtener la primera palabra del aviso a pesar de que puse users.push (response.split(' ')). userList [0]: muestra el primer índice de la matriz en lugar de la primera palabra.

Y segundo, quiero obtener toda la lista de usuarios en console.log pero, en cambio, obtengo la misma cadena según la longitud de la matriz

about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

userList[0] en la función Usuario devolverá una matriz: ['nombre', 'apellido']. Para obtener el primer nombre, por ejemplo, debe usar this.name = userList[i][0]

 function UserList() { let users = []; while (true) { let response = prompt('Please, enter your name surname?'); if (response == null) { alert('cancel'); break; } users.push(response.split(' ')); } return users; } function User() { for (var i = 0; i < userList.length; ++i) { this.name = userList[i][0]; this.surname = userList[i][1]; this.regDate = new Date; console.log('Name: ' + this.name + ' Surname: ' + this.surname + '. Date of registration : ' + this.regDate) } } let userList = new UserList(); let user = new User();
about 4 years ago · Juan Pablo Isaza Denunciar

0

  1. UserList no debería ser un constructor. Debería ser solo una función que devuelva una matriz de nombres.

  2. No debería estar iterando sobre la lista de usuarios dentro User . Luego, debería iterar sobre la matriz creando un nuevo User en cada iteración que debería generarse a partir de un constructor. Simplemente puede pasar cada nombre de la matriz y construir un nuevo objeto.

 function getNames() { const users = []; while (true) { const response = prompt('Please, enter your first and last names'); if (response == null) break; users.push(response.split(' ')); } return users; } // Pass in a user name from the array as an argument // It's array so we can destructure the first and last name // immediately function User([first, last]) { this.first = first; this.last = last; this.regDate = new Date(); this.message = `Name: ${this.first}. Surname: ${this.last}. Date of registration: ${this.regDate}.`; } // Iterate over the array generated by `getUsers` // and for each name create a new user. for (let name of getNames()) { console.log(new User(name)); }

Documentación adicional

  • Asignación de desestructuración
about 4 years ago · Juan Pablo Isaza Denunciar

0

Está insertando una matriz en otra matriz, por lo que su índice no es correcto (la matriz se ve así: [["firstname", "lastname"]] ). Puede distribuir los elementos al presionar con el operador de distribución ( ... ), también puede aplanar la matriz con flat() .

Además, al crear una fecha, use new Date() .

 function UserList() { let users = []; while (true) { let response = prompt('Please, enter your name surname?'); if (response == null) { alert('cancel'); break; } users.push(...response.split(' ')); // flatten } return users; } function User() { this.name = userList[0]; this.surname = userList[1]; this.regDate = new Date(); // () console.log('Name: ' + this.name + ' Surname: ' + this.surname + '. Date of registration : ' + this.regDate) } let userList = new UserList(); let user = new User();

Usando flat()

 return users.flat();

Editar

De hecho, entendí mal la pregunta (pensé que solo querías 1 usuario), la otra respuesta debería ser correcta y tiene más sentido.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda