Obtener 3 Elementos Aleatorios de una Lista usando JavaScript

Horacio Herrera
InstructorHoracio Herrera
Share this video with your friends

Social Share Links

Send Tweet
Published 4 years ago
Updated 3 years ago

En este video, aprenderás cómo seleccionar 3 elementos de una lista de manera aleatoria usando solo JavaScript y operaciones de listas. Concretamente usaremos la funciones sort y slice.

Sort sirve para ordenar los elementos de la lista, veremos como con la ayuda de Math.random podemos alterar el orden asignado de manera aleatoria. Éste método devuelve la lista original cambiando el orden de los elementos.

Slice nos servirá para seleccionar una sección de la lista original. Éste método devuelve una copia, con lo cual no afecta la lista original.

Horacio Herrera: [0:00] Vamos a crear una función que se llame tresAleatorios() que recibe una lista como parámetro. Vamos a también poner un console.log debajo, llamando a esta función para poder ir viendo el resultado. Lo primero que tenemos que hacer es devolver una copia de la lista original. Para eso vamos a usar la sintaxis extendida o spread.

[0:20] A esta copia vamos a encadenar la función sort(), para poder cambiar el orden de la lista. Si ejecutamos ahora vemos que siempre tenemos el mismo orden. Para poder cambiar el orden aleatoriamente, tenemos que pasarle a sort una función que devuelva un valor diferente cada vez. Para ello, vamos a usar la función Math.random(). Si es menor a .5, devolvemos 1, y si no, devolvemos -1.

[0:50] Una vez ya tenemos la lista ordenada aleatoriamente, lo que podemos hacer es encadenar otra función que se llama slice(). Esta función, tenemos que pasarle el índice inicial del que queremos cortar y el índice final del que queremos cortar la lista. Si ejecutamos la función vemos que obtenemos el resultado deseado.

[1:11] En resumen, hemos creado una función que se llama tresAleatorios, que recibe una lista como parámetro. Dentro de esta función, devolvemos una copia de esa lista original encadenándole el método sort pasándole una función que devuelve un valor diferente cada vez.

[1:27] Para ello utilizamos Math.random. Una vez hemos cambiado el orden de la lista, podemos encadenar la función slice para poder cortar la lista a los tres primeros elementos.

egghead
egghead
~ an hour ago

Member comments are a way for members to communicate, interact, and ask questions about a lesson.

The instructor or someone from the community might respond to your question Here are a few basic guidelines to commenting on egghead.io

Be on-Topic

Comments are for discussing a lesson. If you're having a general issue with the website functionality, please contact us at support@egghead.io.

Avoid meta-discussion

  • This was great!
  • This was horrible!
  • I didn't like this because it didn't match my skill level.
  • +1 It will likely be deleted as spam.

Code Problems?

Should be accompanied by code! Codesandbox or Stackblitz provide a way to share code and discuss it in context

Details and Context

Vague question? Vague answer. Any details and context you can provide will lure more interesting answers!

Markdown supported.
Become a member to join the discussionEnroll Today