Ich habe ein JSON-Objekt, das aus einer langen Liste von anderen JSON-Objekte besteht, die einige gemeinsame Eigenschaften zueinander, so haben:Wie wird ein zufälliges JSON-Objekt nach Schlüssel aus dem JSON-Wörterbuch abgerufen?
var myData = {
"0291" : { "Firstname" : "Jeremy", "Surname" : "Dyson" },
"0398" : { "Firstnname" : "Billy", "Surname" : "Bunter" },
"6714" : { "Firstnname" : "Harry", "Surname" : "Peterson" },
"9080" : { "Firstnname" : "Barry", "secondname": "Joe", "Surname" : "Mainwaring"}
...
...
}
ich bereits eine HTML-Vorlage erstellt. Mit dem JS möchte ich durch die Objekte in den Daten {} in zufällige Reihenfolge auswählen oder iterieren (zufällige Auswahl + Schleife), so dass ich den HTML-Code für jeden Besucher im laufenden Betrieb füllen kann. Der zufällige Teil ist wichtig, daher erhält jeder Besucher wahrscheinlich andere Daten.
Einfache JavaScript- oder jQuery-Lösungen funktionieren in dem Kontext, in dem sie implementiert werden.
EDIT: Lösung I ist unten umgesetzt.
1. Sammeln Sie alle Schlüssel:
var keyArray = Object.keys(myData);
2. Shuffle function:
function shuffle(o){ //v1.0
for(var j, x, i = o.length; i; j = parseInt(Math.random() * i), x = o[--i], o[i] = o[j], o[j] = x);
return o;
};
keyArray = shuffle(keyArray); // shuffle it!
3. Schleife iterieren:
for (var i = 0; i < keyArray.length; ++i) {
var current = data[keyArray[i]];
... // what you want to do each time.
}
Was die JSON generiert? Scheint, als wäre es einfacher, es zu diesem Zeitpunkt randomisieren –
@ explosion: Ich beginne zu kodieren, schreibe ich die 4000 Zeilen lexikalische Datenbank von Hand. Keine Zufallsfunktion ... noch! – Hugolpz