Sebastian Becker: Zufallsauswahl aus Array

Beitrag lesen

Hallo, Jürgen,

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

du könntest das Array auch mischen und dann die ersten N Elemente nehmen. Sie hierzu http://forum.de.selfhtml.org/archiv/2006/12/t142119/#m924652.

gute Idee, Danke! Meine Lösung auf Basis eines anderen Skripts steht unten.

Grüße aus Berlin,

Sebastian

Trotzdem würde mich immer noch interessieren, warum bei dem ursprünglich geposteten Skript das Array verändert wurde ...

<script>

/**************************************
Random Array Elements
**************************************/

function randomArrayElements(arr,num)
{
// shuffle array elements
// based on code by Jonas Raoni Soares Silva (www.joninhas.ath.cx)
for(var j,x,i=arr.length;i;j=parseInt(Math.random()*i),x=arr[--i],arr[i]=arr[j],arr[j]=x);
// get first [num] elements
if(num)var arr = arr.slice(0,num);
return arr;
}

// test
var arraytoshuffle = new Array;
arraytoshuffle = ["A","B","C","D","E","F","G","H","I","J",0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
document.write(randomArrayElements(arraytoshuffle,6));

</script>