Wie dynamisch füllen Sie ein array mit einer for-in-Schleife

Gibt ein array set mit einer Folge von Zufallszahlen zwischen 1 und 500 ich habe versucht, umgestalten, ein standard für die Schleife for(var i = 0; i< 50; i++) und das klappte auch aber als ich versuchte, zu tun, eine Umgestaltung mit einem for in Schleife nicht. Meine Vermutung ist, dass es etwas über die array.length Eigenschaft und es ist zu verwenden, ich bin vermasseln.

TL;DR Warum hat diese liefert ein array von 50 Undefinierte Elemente eher als ein array mit 50 zufälligen Ganzzahlen? Und gibt es einen Weg, um diesen Ansatz zu arbeiten?

var set = [];
set.length = 50;

for(var i in set){
    set[i] = Math.floor((Math.random() * 500) + 1);
}

console.log(set);

Ähnliche Fragen: Hilfreich, aber nicht ganz das, was ich bin auf der Suche nach

Update

Als ich vermutete, den Punkt, den ich fehlte, war, dass die Einstellung set.length nicht das hinzufügen von Elementen der array-es schafft nur eine spärliche array (ein array mit Lücken). In meinem Fall können Sie nicht verwenden for in denn es gibt nichts, was in das array zu Durchlaufen. Ich würde entweder zum Auffüllen der array mit dummy-Inhalt(d.h. die leeren Saiten) oder mehr logisch getrennten Bereich Teil habe ich versucht zu implementieren, mit der .length - Eigenschaft in einer separaten range variable.

Funktionierende version

var set = [], range = 50;

for(var i = 0; i < range; i++){
    set[i]=Math.floor((Math.random() * 500) + 1);
}

console.log(set);
Sie können nicht erhöhen Sie die Größe des array, auf diese Weise.

InformationsquelleAutor jeanpier_re | 2015-05-19

Schreibe einen Kommentar