Obiect aleatoriu din mai multe Array cu procentaj de șanse în JS
Discutii si intrebari legate de scripturi si functii JavaScript, jQuery si Ajax, cod JavaScript in general.
-
Marius
- Mesaje: 60
Obiect aleatoriu din mai multe Array cu procentaj de șanse în JS
Am 3 Array de obiecte în JavaScript:
Cod: Selectaţi tot
const fruits = [
{name: "Banana"},
{name: "Apple"},
{name: "Peach"}
]
const car = [
{name: "Audi"},
{name: "Bentley"}
]
const books = [
{name: "Alice in wonderland"},
{name: "Deep in the dark"},
{name: "Hunting Show"}
]
Un array temporar în care voi stoca obiecte aleatorii alese:
Vreau să obțin un obiect aleatoriu din array aleatoriu.
50% procentaj de șanse să obțin obiect aleatoriu din fruits.
30% procent să obțin obiect aleatoriu din array-ul car.
20% procentaj de șanse să obțin obiect aleatoriu din array books.
Exemplu:
- Șansa de 50% -> obiectul aleatoriu din array fruits este adaugat in tempArray și tempArray ar trebui să aibă obiect cu "Banana".
- Șansa de 20% -> Obiectul aleatoriu din array books este adaugat in tempArray și tempArray ar trebui să aibă obiect cu numele "Hunting Show".
Cum se poate face în javascript?
MarPlo
Mesaje: 4343
Trebuie să obții două numere aleatorii:
- primul care decide ce grup alege,
- al doilea care alege un articol din acesta.
Generăm un număr aleatoriu de la 1 la 100.
- Un număr de la 1 la 20 alege un element aleatoriu din array books,
- un număr de la 21 la 50 alege un element aleatoriu cars,
- un număr de la 51 la 100 alege un element aleatoriu array fruits.
Cod: Selectaţi tot
const fruits = [
{name: "Banana"},
{name: "Apple"},
{name: "Peach"}
]
const car = [
{name: "Audi"},
{name: "Bentley"}
]
const books = [
{name: "Alice in wonderland"},
{name: "Deep in the dark"},
{name: "Hunting Show"}
]
const tempArray = []
let randomNumber = Math.floor((Math.random() * 100) + 1); // 1 to 100
if (randomNumber < 21) {
let randomIndex = Math.floor(Math.random() * books.length); // 0 to 3
tempArray.push(books[randomIndex]);
}
else if (randomNumber < 51) {
let randomIndex = Math.floor(Math.random() * car.length); // 0 or 1
tempArray.push(car[randomIndex]);
}
else {
let randomIndex = Math.floor(Math.random() * fruits.length); // 0 to 2
tempArray.push(fruits[randomIndex]);
}
console.log('tempArray: ' + JSON.stringify(tempArray));
Subiecte similare
-
implode(): Passing glue string after array is deprecated
PHP - MySQL - XML
Primul mesaj
Dupa 7 ani !
Acum, revazand o veche aplicatie cu codul Multiple Select Drop Down list cu tabel 3 coloane +1; am constatat ca datorita upgradarii...
Ultimul mesaj
OK ! Eu nu am inteles despre ce parametri era vorba. S-a rezolvat, multumesc pentru promptitudinea cu care mi-ai raspuns ! TOATE CELE BUNE !!!