• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

jak wyświetlić losową wartość z tablicy lub losową właściwość z obiektu?

Object Storage Arubacloud
0 głosów
288 wizyt
pytanie zadane 11 lutego 2021 w JavaScript przez kajman_Rrzeczny Użytkownik (960 p.)
chciałbym wyświetlić na przykład w konsoli losową wartość z tablicy lub losową właściwość z obiektu

1 odpowiedź

+1 głos
odpowiedź 11 lutego 2021 przez ScriptyChris Mędrzec (190,190 p.)
wybrane 12 lutego 2021 przez kajman_Rrzeczny
 
Najlepsza

Użyj Math.random do wylosowania liczby z zakresu indeksów tablicy i tą liczbę podstaw pod indeks elementu, do którego chcesz się odwołać w tablicy.

W przypadku obiektu sprawa jest o tyle trudniejsza, że klucze propertisów przyjmują zazwyczaj nazwę w postaci stringa. Więc żeby odwołać się do losowego property, najpierw potrzebujesz mieć zbiór tych nazw - możesz go odczytać np. przez Object.keys. Na takiej tablicy kluczy możesz odczytać losowy klucz korzystając ze wspomnianego Math.random i już wylosowanym kluczem odczytać wartość propertisa.

komentarz 11 lutego 2021 przez kajman_Rrzeczny Użytkownik (960 p.)

Nie wiem jak ma wyglądać składnia. gdy klikam w button to w konsoli ma się wyświetlić losowa wartość z tablicy

let tableRandomValue = [1, 2, 3];

elementLoL.addEventListener("click", function() {

    console.log(tableRandomValue[Math.random()]);

})

 

komentarz 12 lutego 2021 przez ScriptyChris Mędrzec (190,190 p.)

Math.random zwraca wylosowaną liczbę z przedziału od 0 do 0.99... (czyli mniejszej od 1). Tablica tableRandomValue ma trzy elementy, a więc jej indeksy to 0, 1, 2. Potrzebujesz więc wylosować liczbę z przedziału od 0 do 2 (włącznie). Przykład do tego jest we wcześniej podlinkowanej dokumentacji → https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/random#getting_a_random_integer_between_two_values_inclusive

Dla Twojego kodu użycie funkcji z przykładu w dokumentacji będzie takie:

const randomIndex = getRandomIntInclusive(0, 2);

console.log(tableRandomValue[randomIndex]);

Możesz też zadeklarować funkcję getRandomIntInclusive w prototypie tablicy lub własnej klasie dziedziczącej po tablicy (żeby nie modyfikować oryginalnego prototypu) i wtedy użycie będzie jeszcze prostsze, bo nie będziesz musiał podawać parametrów. Dodatkowo możesz zmodyfikować tą funkcję, aby zwracała od razu losowy element - i wtedy nazwać ją np. getRandomElement:

Array.prototype.getRandomElement = function () {
  const min = 0;
  const max = this.length - 1; // maksimum jest brane z długości tablicy
  const randomIndex = Math.floor(Math.random() * (max - min + 1) + min);

  return this[randomIndex];
}

// użycie
console.log('random element from array:', tableRandomValue.getRandomElement());

 

Podobne pytania

0 głosów
1 odpowiedź 126 wizyt
0 głosów
1 odpowiedź 82 wizyt

92,580 zapytań

141,433 odpowiedzi

319,665 komentarzy

61,966 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...