JavaScript Zufallszahlen ohne Wiederholung
Ich habe einige code, wo ich ein array von x Anzahl der Elemente. In diesem Fall, die videos, und ich möchte nach dem Zufallsprinzip aufrufen, ein video, allerdings, wenn das aktuelle video bereits aufgerufen ist dasselbe, wie der random number ich will es generiert eine zufällige Zahl, bis Sie eindeutig sind.
Hier ist mein code:
var videoLinks = [
['<iframe id="vid" src="https://www.youtube.com/embed/nYm2G4MnSkY?autoplay=1" frameborder="0" allowfullscreen></iframe>'],
['<iframe id="vid" src="https://www.youtube.com/embed/wAgZVLk6J4M?autoplay=1&start=5&end=45" frameborder="0" allowfullscreen></iframe>'],
['<iframe id="vid" src="https://www.youtube.com/embed/ix9wpslKwBE?autoplay=1" frameborder="0" allowfullscreen></iframe>'],
['<iframe id="vid" src="https://www.youtube.com/embed/OJJ-iLsQOPc?autoplay=1&iv_load_policy=3" frameborder="0" allowfullscreen></iframe>'],
['<iframe id="vid" src="https://www.youtube.com/embed/rore790l_sk?autoplay=1&start=12&end=94" frameborder="0" allowfullscreen></iframe>'],
];
var randomNumber = function () {
var getRandomNumber = Math.floor(Math.random() * 5);
var random = videoLinks[getRandomNumber]
document.getElementById("videoWrapper").innerHTML = random[0];
};
randomNumber(); //To call the function on load
- Vielleicht "Suffle ein array" wird Ihnen helfen ? stackoverflow.com/a/6274381/622813
Du musst angemeldet sein, um einen Kommentar abzugeben.
verwenden Sie eine variable, um zu überprüfen, ob die Nummer die gleiche ist.
etwas wie dieses: (mit LastNumber zum speichern der lastNumber), falls es bereits verwendet wird, wir gonna versuchen Sie es erneut)
Können Sie ein array erstellen, halten Sie die beenden generierten zahlen.
JS:
Zunächst, warum Sie wickeln alle strings in Arrays? Ließ ich Sie in meine Lösung unten.
Trotzdem, einfachste und sauberste Lösung ist ein Klon des Array, und legen Sie die ausgewählte URL aus dem neuen Array.
videoLinks
ohne unnötige extra-arrays für meine Lösung.document.getElementById("videoWrapper").innerHTML = randomVideo()[0]