Felix Riesterer: Zufallsauswahl aus Array

Beitrag lesen

Lieber Sebastian,

ich möchte aber _mehrere_ einzigartige (unique) zufällige Einträge des Arrays ausgeben ...

...und was hindert Dich daran, diese Funktion mehrmals aufzurufen? Wenn Du die Ergebnisse vergleichst, dann kannst Du die Einzigartigkeit dadurch garantieren, dass Du Dir so oft von der Funktion ein Ergebnis geben lässt, bis Du Deine Anzahl an Ergebnissen voll hast.

(ungetestet!)

var anzahl = 7; // Diesen Wert könnte man auch zufällig gestalten...  
var ergebnisse = new Array();  
/* arr steht für Dein Array, in welchem die Daten stehen,  
   randomContent für die von Dennis vorgeschlagene Funktion! */  
for (var i = 0; i < anzahl; i++) {  
    var einzigartig = false;  
    var versuch = null;  
    while (!einzigartig) {  
        versuch = randomContent(arr);  
        einzigartig = true;  
        // wirklich einzigartig?  
        for (var j = 0; j < ergebnisse.length; j++) {  
            if (versuch == ergebnisse[j])  
                einzigartig = false;  
        }  
    }  
    if (versuch != null)  
        ergebnisse[ergebnisse.length] = versuch;  
    /* sollte anzahl größer als die Anzahl an Elementen in arr sein,  
       dann haben wir hier eine Endlos-Schleife... */  
}

Liebe Grüße aus Ellwangen,

Felix Riesterer.