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 :

[Debutant]ParseInt sur un Array


Sujet :

JavaScript

  1. #1
    Expert confirmé
    Avatar de ludojojo
    Homme Profil pro
    Développeur SharePoint
    Inscrit en
    Avril 2008
    Messages
    2 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur SharePoint
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 967
    Billets dans le blog
    5
    Par défaut [Debutant]ParseInt sur un Array
    Bonjour,

    Je cherche à réaliser un graphique pour ma page Web. Les données sont dynamiques et proviennent d'une base de données.
    Pour cela j'utilise une fonction php qui me donne les informations nécessaires.

    Je ne connais pas le nombre d'arguments à l'avance. Par conséquent, j'utilise cette méthode pour récupérer l'information :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var args = Array.prototype.slice.call(arguments);
    Si je fait un alert(args) j'obtiens bien les valeurs que je souhaites. Jusque là parfait.
    En revanche lorsque je veux les utiliser dans mon script, cela ne fonctionne pas car les données sont récupérer en texte...

    Voici le script que je souhaite utiliser :
    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
    <script type="text/javascript">
    var chart;
    function ShowChart()
    {
    	var args = Array.prototype.slice.call(arguments);
    	chart = new Highcharts.Chart({
    		chart: {renderTo: 'container',defaultSeriesType: 'column'},
    		title: {text: 'Statistiques mensuelles'},
    		subtitle: {text: 'Source: ZEFIR'},
    		xAxis: {
    			categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec', 'Total']
    			},
    		yAxis: {min: 0,	title: {text: 'Nombre de dépôts'}},
    		legend: {
    			layout: 'vertical',
    			backgroundColor: '#FFFFFF',
    			align: 'left',
    			verticalAlign: 'top',
    			x: 100,
    			y: 70,
    			floating: true,
    			shadow: true
    			},
    		tooltip: {
    			formatter: function() {
    				return ''+
    				this.x +': '+ this.y +' dépôts';
    			}
    			},
    		plotOptions: {column: {pointPadding: 0.2,borderWidth: 0}},
    		series: [{
    			name: '2010',
    			data: [10,25,45,68,359,51,254,457,48,36,125,756,124]
    			}]
    		});
    	};
    </script>
    Je souhaites remplacer data: [10,25,45,68,359,51,254,457,48,36,125,756,124] par les valeurs comprisent dans "args".
    Si je met data: [parseFloat(args)] alors je ne récupère que la première valeur...

    Une idée ?

    Merci par avance.
    Aide les autres...
    Et les autres t'aideront....
    Mon site DVP
    N'oubliez pas de consulter les FAQ SharePoint et les cours et tutoriels SharePoint

    N'oubliez pas de voter pour les messages dont la réponse est pertinente

  2. #2
    Invité
    Invité(e)
    Par défaut
    salut,

    un truc très simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    data: function(arg){
     var theGoodArray=[];
     for(var i =0; ...)
      theGoodArray[i]=parseFloat(arg[i]);
     return theGoodArray;
    }(args)
    tu peux également utiliser la fonction map qui t'épargnes quelques lignes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    data:args.map(function(x){return parseFloat(x);})
    ou plus court :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    data:args.map(parseFloat)
    à la syntaxe près!
    cette dernière étant dispo chez ff, les autres navigateurs, je ne sais pas.
    Dernière modification par Invité ; 12/09/2011 à 20h04.

  3. #3
    Membre Expert Avatar de Willpower
    Homme Profil pro
    sans emploi
    Inscrit en
    Décembre 2010
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : sans emploi

    Informations forums :
    Inscription : Décembre 2010
    Messages : 1 009
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    data:[].map.call(arguments,parseFloat);

  4. #4
    Expert confirmé
    Avatar de ludojojo
    Homme Profil pro
    Développeur SharePoint
    Inscrit en
    Avril 2008
    Messages
    2 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur SharePoint
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 967
    Billets dans le blog
    5
    Par défaut
    Alors, je me sens vraiment tout petit...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    data:args.map(parseFloat)
    Parfait ! Sauf que...
    Pas moyen de l'utiliser sous IE.
    Je suis donc obligé d'utiliser ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    data: function(arg){
    var theGoodArray=[];
    for(var i =0; i<args.length; i++)
    	theGoodArray[i]=parseFloat(arg[i]);
    return theGoodArray;
    }(args)
    Merci !
    Aide les autres...
    Et les autres t'aideront....
    Mon site DVP
    N'oubliez pas de consulter les FAQ SharePoint et les cours et tutoriels SharePoint

    N'oubliez pas de voter pour les messages dont la réponse est pertinente

  5. #5
    Expert confirmé
    Avatar de ludojojo
    Homme Profil pro
    Développeur SharePoint
    Inscrit en
    Avril 2008
    Messages
    2 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur SharePoint
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 967
    Billets dans le blog
    5
    Par défaut
    Juste une dernière précision concernant ce script SVP...
    Je souhaiterais rajouter un premier argument de ma fonction, l'année en question dans le graphique. (Pas de soucis pour récupérer cette information.)
    Mon problème c'est que si je modifie le script de cette façon :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    name: args[0],
    data: function(arg){
    	var theGoodArray=[];
    	for(var i=1; i<args.length; i++)
    		theGoodArray[i]=parseFloat(arg[i]);
    	return theGoodArray;
    }(args)
    Plus rien ne fonctionne...
    Si je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    name: args[0],
    data: function(arg){
    	var theGoodArray=[];
    	for(var i=0; i<args.length; i++)
    		theGoodArray[i]=parseFloat(arg[i+1]);
    	return theGoodArray;
    }(args)
    Alors cela fonctionne mais je me retrouve avec un colonne de trop et vide puisque pas de valeur associé sur le dernier n+1...
    Une idée de comment faire ma boucle ?
    Aide les autres...
    Et les autres t'aideront....
    Mon site DVP
    N'oubliez pas de consulter les FAQ SharePoint et les cours et tutoriels SharePoint

    N'oubliez pas de voter pour les messages dont la réponse est pertinente

  6. #6
    Expert confirmé
    Avatar de ludojojo
    Homme Profil pro
    Développeur SharePoint
    Inscrit en
    Avril 2008
    Messages
    2 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur SharePoint
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 967
    Billets dans le blog
    5
    Par défaut
    Bon en testant un peu dans tous les sens... J'ai fini par trouver la solution :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    name: args[0],
    data: function(arg){
    	var theGoodArray=[];
    	for(var i=0; i<args.length-1; i++)
    		theGoodArray[i]=parseFloat(arg[i+1]);
    	return theGoodArray;
    }(args)
    Aide les autres...
    Et les autres t'aideront....
    Mon site DVP
    N'oubliez pas de consulter les FAQ SharePoint et les cours et tutoriels SharePoint

    N'oubliez pas de voter pour les messages dont la réponse est pertinente

  7. #7
    Membre Expert Avatar de Willpower
    Homme Profil pro
    sans emploi
    Inscrit en
    Décembre 2010
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : sans emploi

    Informations forums :
    Inscription : Décembre 2010
    Messages : 1 009
    Par défaut
    Sans t'amuser avec des "-1" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    var args = Array.prototype.slice.call(arguments,1);
     
    name: arguments[0],
    data: function(arg){
    	var theGoodArray=[];
    	for(var i=0; i<args.length; i++)
    		theGoodArray[i]=parseFloat(arg[i]);
    	return theGoodArray;
    }(args)
    edit:
    Pourquoi ne pas passer directement un tableau de float en argument ?
    du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ShowChart("name",[10,25,45,68,359,51,254,457,48,36,125,756,124]);
    ça t'évitera tous tes problèmes de parseFloat et de découpe de ton tableau.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. (Tres debutant) :Question sur Tableau array
    Par alexwolf dans le forum Langage
    Réponses: 5
    Dernier message: 28/11/2007, 13h49
  2. [debutant]affichage sur le meme niveau
    Par christophebmx dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 10/02/2005, 15h34
  3. [Debutant] Livres sur l'algo?
    Par mike55 dans le forum Algorithmes et structures de données
    Réponses: 5
    Dernier message: 20/04/2004, 19h56
  4. [debutant]renvoyer sur une jsp depuis une servlet
    Par omega dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 23/03/2004, 11h55
  5. [debutant] Questions sur 1 futur projet
    Par cyrull22 dans le forum XML/XSL et SOAP
    Réponses: 3
    Dernier message: 28/04/2003, 21h49

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