Créer multidimensionnelle de l'objet avec multidimentional tableaux
Im essayant de construire un peu avancé "Flot" de jQuery pluging graphique. Pour cela, j'ai besoin d'une approche multidimensionnelle de l'objet (ou du moins je le pense).
La structure doit ressembler à ceci:
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]]
}
};
De mon code-behind, j'ai généré un certain nombre de listes qui ressemble à ceci (Pas les mêmes données, mais dont l'esprit que l'):
<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>
Où les "etats-unis/etats-unis" est la "MOBILISATION", "1988" est "2012/3/27" et "483994" est "02:10". Vous obtenez la photo!!??
J'ai essayé d'écrire quelques jQuery, mais il est évident qu'elle ne marche pas:
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;
Comme vous pouvez le voir, j'ai utilisé pousser à objects
tableau. Clairement ce n'est pas de me donner le résultat que je souhaite. Im kindda perdre whats en haut et en bas dans le présent, comme la première fois que je travaille avec javascript/jQuery objets.
Quel est la meilleure solution pour cela?
Haha je sais mate, im juste trop paresseux pour le saisir. Je viens de trouver un hasard 🙂
OriginalL'auteur Kasper Skov | 2012-07-25
Vous devez vous connecter pour publier un commentaire.
Vos jeux de données est un objet, un tableau pas - vous ne pouvez pas pousser. Aussi, votre variable
categoryName
ne fonctionne pas comme ça (en savoir plus sur dot et le support de la notation). Essayez ceci:Aussi, je ne suis pas sûr de savoir si vous avez vraiment besoin pour créer
Date
objets, mais cela dépend de votre et format de sortie.comme vous pouvez le voir www18.speedyshare.com/zmgqp/download/graph.jpg 🙂
Hmm ouais cant obtenir de travailler. Avez-vous une idée de quoi faire? J'ai essayé de le convertir en un objet de Date et de définir le format de date de la propriété pour les plugins axe des ordonnées. Pas de chance
Non, pas moi. Mais je pense que ce serait donner une bonne, il y a déjà temps - pourtant, ils ont la poignée de datetimes, pas les moments de la journée 🙂
Ouais. Devinez ce que j'ai besoin d'un laps de temps. Merci pour votre aide mate!
OriginalL'auteur Bergi
Changement
var objects = [];
àvar objects = {};
et le changement
à
Le problème que vous avez avec des objets JSON est dans la définition de propriétés avec un indice de variable. Vous pouvez utiliser la notation de tableau pour le faire, comme ci-dessus.
OriginalL'auteur Joe Green
Essayer
OriginalL'auteur Utkanos
Essayez ceci:
Démo: http://jsfiddle.net/nfsYu/6/
Toujours pas mieux, je voulais dire l'ensemble de l'objet non seulement la new Object()...
ok....
OriginalL'auteur undefined
OriginalL'auteur user10170700