JeuWeb - Crée ton jeu par navigateur
[Résolu][Javascript] Problème de tableau et objet - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : [Résolu][Javascript] Problème de tableau et objet (/showthread.php?tid=1520)

Pages : 1 2 3 4


[Résolu][Javascript] Problème de tableau et objet - Wells - 06-05-2011

Bonjour à tous, je travaille sur un script qui fait ceci:


bandInfos[i].decorators = [new Object, new Object,.....];

Mon problème est que le nombre d'"Object" est dynamique.

Hors je n'arrive pas à créer cette liste dynamiquement.

j'ai d'abord penser à un tableau à cause des [] mais ca ne semble pas en être un.

Si qu'un connait cette syntaxe je suis preneur Smile


RE: [JS] Probleme de tableau et objet - Sephi-Chan - 06-05-2011

La notation littérale avec crochets est bien celle d'un tableau. Tu peux donc utiliser la méthode push pour ajouter des éléments.


bandInfos[i].decorators = [ { ... }, { ... } ];
bandInfos[i].decorators.push({ ... });

Il ne faut pas hésiter à utiliser les notations littérales en Javascript. Par exemple écrire {} plutôt que new Object(). Smile


RE: [Javascript] Problème de tableau et objet - Wells - 09-05-2011

Je test ca bientôt et je te confirme que ca tourne. Wink


RE: [Javascript] Problème de tableau et objet - Argorate - 10-05-2011

Je te confirme que ça marche, c'est la bonne syntaxe, un tableau d'objet:

Code :
var tab =
[
      {
            ...
      },
      {
            ...
      }
]

Je m'en sert pour mon didacticiel Smile


RE: [Javascript] Problème de tableau et objet - Wells - 10-05-2011

Snif marche po.

J'essaye de remplacer ca:
Code :
        bandInfos[i].decorators = [
            new Timeline.SpanHighlightDecorator({
                startDate:  deb[0],
                endDate:    fin[0],
                color:      couleurs[0],
                opacity:    40,
                startLabel: label[i + "-" + 0],
                endLabel:   "",
                cssClass: 'titre-zone-historique'
            }),
            new Timeline.SpanHighlightDecorator({
                startDate:  deb[1],
                endDate:    fin[1],
                color:      couleurs[1],
                opacity:    40,
                startLabel: label[i + "-" + 1],
                endLabel:   "",
                cssClass: 'titre-zone-historique'
            }),
            new Timeline.SpanHighlightDecorator({
                startDate:  deb[2],
                endDate:    fin[2],
                color:      couleurs[2],
                opacity:    40,
                startLabel: label[i + "-" + 2],
                endLabel:   "",
                cssClass: 'titre-zone-historique'
            }),
            new Timeline.SpanHighlightDecorator({
                startDate:  deb[3],
                endDate:    fin[3],
                color:      couleurs[3],
                opacity:    40,
                startLabel: label[i + "-" + 3],
                endLabel:   "",
                cssClass: 'titre-zone-historique'
            }),
            new Timeline.SpanHighlightDecorator({
                startDate:  deb[4],
                endDate:    fin[4],
                color:      couleurs[4],
                opacity:    40,
                startLabel: label[i + "-" + 4],
                endLabel:   "",
                cssClass: 'titre-zone-historique'
            }),
            new Timeline.SpanHighlightDecorator({
                startDate:  deb[5],
                endDate:    fin[5],
                color:      couleurs[5],
                opacity:    40,
                startLabel: label[i + "-" + 5],
                endLabel:   "",
                cssClass: 'titre-zone-historique'
            }),
            new Timeline.SpanHighlightDecorator({
                startDate:  deb[6],
                endDate:    fin[6],
                color:      couleurs[6],
                opacity:    40,
                startLabel: label[i + "-" + 6],
                endLabel:   "",
                cssClass: 'titre-zone-historique'
            })
        ];

par:

Code :
        for (var ii = 0; ii < 6; ii++)
            {
            bandInfos[i].decorators.push(
                    new Timeline.SpanHighlightDecorator({
                    startDate:  deb[ii],
                    endDate:    fin[ii],
                    color:      couleurs[ii],
                    opacity:    40,
                    startLabel: label[i + "-" + ii],
                    endLabel:   "",
                    cssClass: 'titre-zone-historique'})
                    );
            }

c'est bon fallait ajouter bandInfos[i].decorators = new Array(); juste avant.


RE: [Javascript] Problème de tableau et objet - Sephi-Chan - 10-05-2011

Plutôt que :

bandInfos[i].decorators = new Array();

Je te conseille :

bandInfos[i].decorators = [];

Histoire de s'habituer aux notations littérales ! Wink


RE: [Résolu][Javascript] Problème de tableau et objet - Argorate - 10-05-2011

je lui ai dit sur msn mais il préfère new Array() pour la lisibilité Wink


RE: [Résolu][Javascript] Problème de tableau et objet - Sephi-Chan - 10-05-2011

Et mon cul c'est du poulet ? Ça ressemble bien plus à "je préfère garder mes habitudes, mêmes si elles ne sont pas appropriés au langage que j'utilise". Ce n'est pas pertinent.

Embrasses les idioms du langage que tu utilises ou change de langage. Ce sont les particularités des langages qui font leur force.


RE: [Résolu][Javascript] Problème de tableau et objet - niahoo - 10-05-2011

Ouais bon en même temps si les deux notations sont valides c'est bien qu'il n'est pas interdit d'utiliser l'une ou l'autre selon sa prééééféééééreeeeeence à soooaaaaaa.


RE: [Résolu][Javascript] Problème de tableau et objet - Sephi-Chan - 10-05-2011

Je ne dis pas que c'est interdit mais que ce n'est pas dans l'esprit du langage. Smile