TransWikia.com

Escolhas aleatórias em um array JavaScript

Stack Overflow em Português Asked by Elias Oliveira on November 30, 2021

Opa galera, sou novo tanto no stackoverflow quanto no mundo do JS!

Seguinte, eu estou tendo dificuldades em fazer um script que escolha uma string dentro de um array
escrevi o código da seguinte forma:

let choices = ['a', 'b', 'c']
Math.floor(choices)

e retorna not a number o que é perfeitamente entendível, já que os valores do array são strings, mas como
havia dito sou novo no mundo do JS e não sei se o método Math é o melhor para a tarefa, o mesmo script
em python seria muito mais simples:

import random

choices = ['a', 'b', 'c']
random.choice(choises)

Gostaria de saber se os senhores(a) teriam alguma sugestão de método no JS que retornasse o valor como no
código em pythom. Desde já grato!

3 Answers

Pode usar uma função

let choices = ['a', 'b', 'c'];

function rand(choices) {
    console.log(choices[~~(choices.length * Math.random())]);
}
rand(choices);

Qual a função do operador ~ (til) em JavaScript?

Answered by user60252 on November 30, 2021

Poderia implementar da seguinte maneira:

choices[Math.floor((Math.random() * choices.length))]

Answered by Danizavtz on November 30, 2021

Bom, a abordagem pro teu problema é bem simples. Em JS, recomendo você gerar um número aleatório de 0 até o tamanho da sua array com o array.length, e depois acessar um indice aleatório com esse mesmo número gerado. Ficaria assim:

let choices = ['a', 'b', 'c']
let tamanho_array = choices.length
let n_aleatorio = Math.floor(Math.random() * tamanho_array);
let retorno_aleatorio = choices[n_aleatorio]

Assim, a variável retorno_aleatório vai ter teu valor random.

Answered by placementw on November 30, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP