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

237
Vistas
Pasar una matriz como parámetro a una función para elegir una cadena aleatoria

Actualmente estoy haciendo un curso de javascript en udemy y encontré un problema con un pequeño desafío de codificación. Se supone que el código elige a una persona al azar de una matriz. Mi código funciona en su plataforma de prueba, pero no puedo hacer que funcione en las herramientas de desarrollo de Chrome.

 var names = ["Angela", "Ben", "Jenny", "Michael", "Chloe"]; function whosPaying(names) { var randomNumber = Math.random(); var arrayLength = names.length; var hasToPay = Math.floor((arrayLength * randomNumber)); return names[hasToPay] + " is going to buy lunch today!" } whosPaying();

Si escribo mi código de esta manera, funciona en el entorno de prueba cuando envío el código sin la matriz "nombres", pero en Chrome aparece el siguiente error:

 index.js:5 Uncaught TypeError: Cannot read properties of undefined (reading 'length') at whosPaying (VM165 index.js:5) at VM165 index.js:11

Si defino la matriz dentro de la función, funciona, pero eso no es realmente lo que se supone que debo hacer.

Me pregunto cómo puedo hacer que la función use la matriz que se define fuera de la función. En las instrucciones del ejercicio, la matriz y la forma en que se pasa a la función están predefinidas exactamente de la misma manera que yo lo hice.

No pude encontrar una solución a esto que no incluya una sintaxis completamente diferente o cosas que se supone que aún no debo saber en este punto del curso.

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

over 4 years ago · Santiago Trujillo Denunciar

0

Sobrescribe los nombres globales si pasa un parámetro con el mismo nombre.

 var names = ["Angela", "Ben", "Jenny", "Michael", "Chloe"]; function whosPaying(names) { var randomNumber = Math.random(); var arrayLength = names.length; var hasToPay = Math.floor((arrayLength * randomNumber)); return names[hasToPay] + " is going to buy lunch today!" } let r = whosPaying(); console.log(r);

over 4 years ago · Santiago Trujillo Denunciar

0

Puede pasar parámetros a la función e imprimir el valor de retorno:

 function whosPaying(names) { var randomNumber = Math.random(); var arrayLength = names.length; var hasToPay = Math.floor((arrayLength * randomNumber)); return names[hasToPay] + " is going to buy lunch today!" } var names = ["Angela", "Ben", "Jenny", "Michael", "Chloe"]; console.log(whosPaying(names))

over 4 years ago · Santiago Trujillo 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