Erstellen von mehrdimensionalen Objekts mit mehrdimensionalen arrays
Ich versuche zu bauen, eine etwas erweiterte "Flot" jQuery pluging graph. Dafür muss ich ein mehrdimensionales Objekt (oder zumindest ich denke, es ist).
Die Struktur sollte wie folgt Aussehen:
var datasets = {
"usa": {
label: "USA",
data: [[1988, 483994], [1989, 479060], [1990, 457648], [1991, 401949], [1992, 424705], [1993, 402375], [1994, 377867], [1995, 357382], [1996, 337946], [1997, 336185], [1998, 328611], [1999, 329421], [2000, 342172], [2001, 344932], [2002, 387303], [2003, 440813], [2004, 480451], [2005, 504638], [2006, 528692]]
},
"russia": {
label: "Russia",
data: [[1988, 218000], [1989, 203000], [1990, 171000], [1992, 42500], [1993, 37600], [1994, 36600], [1995, 21700], [1996, 19200], [1997, 21300], [1998, 13600], [1999, 14000], [2000, 19100], [2001, 21300], [2002, 23600], [2003, 25100], [2004, 26100], [2005, 31100], [2006, 34700]]
}
};
Aus meinem code-behind habe ich erzeugt einige Listen so Aussehen (Nicht die gleichen Daten, aber nicht daran, dass):
<ul id="MOBILISATION">
<li data-key="2012/3/27">02:10</li>
<li data-key="2012/3/28">05:25</li>
<li data-key="2012/3/29">09:21</li>
<li data-key="2012/3/30">00:00</li>
<li data-key="2012/3/31">00:00</li>
</ul>
<ul id="OPERATIONS">
<li data-key="2012/3/27">19:51</li>
<li data-key="2012/3/28">18:35</li>
<li data-key="2012/3/29">14:39</li>
<li data-key="2012/3/30">07:46</li>
<li data-key="2012/3/31">10:26</li>
</ul>
Wo "USA/USA" ist "MOBILISIERUNG", "1988" ist "2012/3/27" und "483994" ist "02:10". Sie erhalten das Bild!!??
Ich habe versucht, schriftlich einige jQuery, aber das hat offensichtlich nicht funktioniert:
var objects = [];
var array = [];
var categoryName = "";
$('div#Container ul').each(function () {
catName = $(this).attr('id');
$('li', this).each(function () {
array.push([new Date($(this).data('key')).getTime(), $(this).text()]);
});
objects.push({ categoryName: { label: categoryName, data: array} });
});
var datasets = objects;
Wie Sie sehen können ich habe push-to - objects
array. Klar, das ist nicht, dass Sie mir die Ergebnisse, die ich will. Im kindda zu verlieren, was ist oben und unten in dieser, als Ihr das erste mal im arbeiten mit javascript/jQuery-Objekte.
Was ist die beste Lösung für dieses Problem?
- Es könnte einfacher sein, wenn du uns die echte Liste 🙂
- Haha ich weiß, Kumpel, ich bin nur zu faul, um es eingeben. Ich habe gerade einen random-Beispiel 🙂
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ihre datasets ist ein Objekt, kein array - können Sie nicht, push-to-es. Auch Ihre variable
categoryName
funktioniert nicht, wie (Lesen Sie mehr auf Punkt-und klammernotation). Versuchen Sie dies:Auch, ich bin mir nicht sicher, ob Sie wirklich brauchen würde, zu erstellen
Date
Objekte, aber das hängt von Ihrem in - und output-format.Ändern
var objects = [];
zuvar objects = {};
und ändern
zu
Das problem, das Sie haben mit JSON-Objekten ist in festlegen von Eigenschaften mit einem Variablen index. Sie können verwenden der array Schreibweise zu tun, die, wie oben.
Versuchen
Versuchen Sie dies:
Demo: http://jsfiddle.net/nfsYu/6/