IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Afficher un tableau que me retrourne une fonction


Sujet :

JavaScript

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    162
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 162
    Points : 82
    Points
    82
    Par défaut Afficher un tableau que me retrourne une fonction
    Bonjour,

    En fait, je test un exemple de la librairie Angular-nvd3 avec le plunker dont le lien est http://plnkr.co/edit/zsNxBJ?p=preview

    Par contre, ne n'ai aucun moyen de savoir ce que renvoie la fonction generate(). En fait, ce que je veux, c'est juste voir à quoi ressemble le tableau renvoyé par la fonction generate().
    Même si cela concerne une librairie AngularJS, le code ci-dessous est du Javascript, d'où ma question dans ce forum.

    Voilà le code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
     
            function generateData(){
                var testdata = stream_layers(7,10+Math.random()*100,.1).map(function(data, i) {
                    return {
                        key: 'Stream' + i,
                        values: data.map(function(a){a.y = a.y * (i <= 1 ? -1 : 1); return a})
                    };
                });
     
                testdata[0].type = "area"
                testdata[0].yAxis = 1
                testdata[1].type = "area"
                testdata[1].yAxis = 1
                testdata[2].type = "line"
                testdata[2].yAxis = 1
                testdata[3].type = "line"
                testdata[3].yAxis = 2
                testdata[4].type = "bar"
                testdata[4].yAxis = 2
                testdata[5].type = "bar"
                testdata[5].yAxis = 2
                testdata[6].type = "bar"
                testdata[6].yAxis = 2
     
                return testdata;
            }
     
            /* Inspired by Lee Byron's test data generator. */
            function stream_layers(n, m, o) {
                if (arguments.length < 3) o = 0;
                function bump(a) {
                    var x = 1 / (.1 + Math.random()),
                        y = 2 * Math.random() - .5,
                        z = 10 / (.1 + Math.random());
                    for (var i = 0; i < m; i++) {
                        var w = (i / m - y) * z;
                        a[i] += x * Math.exp(-w * w);
                    }
                }
                return d3.range(n).map(function() {
                    var a = [], i;
                    for (i = 0; i < m; i++) a[i] = o + o * Math.random();
                    for (i = 0; i < 5; i++) bump(a);
                    return a.map(stream_index);
                });
            }
     
            function stream_index(d, i) {
                return {x: i, y: Math.max(0, d)};
            }
    J'ai essayé d'afficher le contenu de ce que renvoie generate() en faisant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    var test = generate();
    alert(test);
    Mais ça ne fonctionne pas. Pouvez vous me dire un moyen d'afficher le contenu de cette fonction s'il vous plaît?

    Je vous remercie par avance,

  2. #2
    Membre émérite
    Avatar de badaze
    Homme Profil pro
    Chef de projets info
    Inscrit en
    Septembre 2002
    Messages
    1 412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets info
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 412
    Points : 2 522
    Points
    2 522
    Par défaut
    Il faudrait mettre generateData au lieu de generate.

    Après il y a une erreur sur d3 qui n'est pas défini mais comme je ne sais pas si tu as tout posté....

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    162
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 162
    Points : 82
    Points
    82
    Par défaut
    Bonjour,

    Dans le plunker, il faut aller regarder dans app.js.
    Effectivement, j'ai plutôt essayé avec generateData().

    J'ai fait:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
     
              alert(generateData());
     
              function generateData(){
                var testdata = stream_layers(7,10+Math.random()*100,.1).map(function(data, i) {
                    return {
                        key: 'Stream' + i,
                        values: data.map(function(a){a.y = a.y * (i <= 1 ? -1 : 1); return a})
                    };
                });
     
                testdata[0].type = "area"
                testdata[0].yAxis = 1
                testdata[1].type = "area"
                testdata[1].yAxis = 1
                testdata[2].type = "line"
                testdata[2].yAxis = 1
                testdata[3].type = "line"
                testdata[3].yAxis = 2
                testdata[4].type = "bar"
                testdata[4].yAxis = 2
                testdata[5].type = "bar"
                testdata[5].yAxis = 2
                testdata[6].type = "bar"
                testdata[6].yAxis = 2
     
                return testdata;
            }
     
            /* Inspired by Lee Byron's test data generator. */
            function stream_layers(n, m, o) {
                if (arguments.length < 3) o = 0;
                function bump(a) {
                    var x = 1 / (.1 + Math.random()),
                        y = 2 * Math.random() - .5,
                        z = 10 / (.1 + Math.random());
                    for (var i = 0; i < m; i++) {
                        var w = (i / m - y) * z;
                        a[i] += x * Math.exp(-w * w);
                    }
                }
                return d3.range(n).map(function() {
                    var a = [], i;
                    for (i = 0; i < m; i++) a[i] = o + o * Math.random();
                    for (i = 0; i < 5; i++) bump(a);
                    return a.map(stream_index);
                });
            }
     
            function stream_index(d, i) {
                return {x: i, y: Math.max(0, d)};
            }
    Et cela m'affiche: Invalid javascript notamment dans ce lien: http://www.webtoolkitonline.com/javascript-tester.html afin de tester le javascript.

    Par contre, avec le tout qui se trouve dans le plunker tout fonctionne correctement puisque le graphe apparaît bien.

  4. #4
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 079
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 079
    Points : 44 662
    Points
    44 662
    Par défaut
    Bonjour,
    plutôt qu'un
    mets un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    console.log(generateData() )
    Et cela m'affiche: Invalid javascript notamment dans ce lien: .... afin de tester le javascript.
    Oublie ce lien et sers toi des outils comme l'ardoise de FireFox par exemple pour des scripts simples.

Discussions similaires

  1. afficher un tableau 2 dimensions dans une fenetre
    Par igor24 dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 29/04/2006, 13h50
  2. retourné un tableau de valeur d'une fonction
    Par hoaxpunk dans le forum Oracle
    Réponses: 2
    Dernier message: 24/01/2006, 17h36
  3. passage d'un tableau en parametre d'une fonction
    Par ataya dans le forum C++Builder
    Réponses: 10
    Dernier message: 26/10/2005, 13h30
  4. Passer un tableau en parametre dans une fonction js
    Par hellmaster78 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 19/06/2005, 14h35
  5. tableau javascript ecrit par une fonction asp
    Par LineLe dans le forum ASP
    Réponses: 4
    Dernier message: 03/11/2003, 08h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo