Zurück zur Übersicht
Javascript: Wie bekommt man mehrere einzigartige Elemente aus einem Array
#Tutorials#Javascript
Für mein Spiel teamword.io benötigte ich für die zur Auswahl stehenden Wörter eine Funktion, die mir aus einem großen Array von Ratewörtern drei einzigartige Wörter/Strings holt, die dann dem Team angezeigt werden um das Wort für die Runde auszuwählen. Das Ganze ist recht einfach. Man mischt (shuffled) einfach das komplette Array und holt sich dann die ersten X, also in meinem Fall 3 Elemente. So hat man immer andere Wörter und auch niemals Wörter doppelt. Würde man sich 3 mal hintereinander ein zufälliges Wort aus dem Array holen, so gibt es die Wahrscheinlich, dass dies passiert.
Hier meine Funktion, bzw. der Aufruf:
// function to pick random words from given array
pickRandomWords(arr, amount) {
let shuffeld = [...arr];
for (let i = shuffeld.length - 1; i > 0; i--) {
const j = Math.floor(Math.random() * (i + 1));
[shuffeld[i], shuffeld[j]] = [shuffeld[j], shuffeld[i]];
}
return shuffeld.slice(0 , amount);
}
// usage:
let a = ['banana','apple','orange','melon','lemon','strawberry','raspberry'];
let randWords = pickRandomWords(a, 3);
Kommentare
Es gibt noch keine Kommentare. Sei der Erste!
Hinterlasse einen Kommentar