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 :

Calculer la somme d'un champ un peu spécifique


Sujet :

JavaScript

  1. #1
    Membre du Club
    Inscrit en
    Février 2006
    Messages
    96
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Février 2006
    Messages : 96
    Points : 47
    Points
    47
    Par défaut Calculer la somme d'un champ un peu spécifique
    Bonsoir,

    Je voudrais calculer la somme d'un champ qui se présente de la sorte:
    ex: +5+10+20+5+5+5+3+2.

    Merci beaucoup

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 060
    Points : 44 585
    Points
    44 585
    Par défaut
    Bonsoir,
    il existe eval, et tout le bien que l'on en pense !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    alert(eval(+5+10+20+5+5+5+3+2.));

  3. #3
    Membre du Club
    Inscrit en
    Février 2006
    Messages
    96
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Février 2006
    Messages : 96
    Points : 47
    Points
    47
    Par défaut
    Bonsoir,

    Je savais que c’était très simple, mais un grand merci, car j'ai oublié ça.

  4. #4
    Expert confirmé
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Points : 4 164
    Points
    4 164
    Par défaut
    Mais au cas où on ait envie d'éviter eval en s'infligeant quelques caractères de plus... on pourrait avoir ça ^^
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var somme = "+5+10+20+5+5+5+3+2.";
    somme = somme.split("+").arraySum();
    ...quitte à définir bien évidemment la fonction en question, par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Array.prototype.arraySum = function() {
        for (var s = 0, i = 0, iMax = this.length; i < iMax; ++i) {
            s += +this[i];
        }
        return s;
    }
    Mais c'est vraiment de la mauvaise volonté pour ne pas utiliser eval ( ), alors que le contexte est évidemment plus sain ici que lorsqu'on se lance dans la réécriture de morceaux de page entiers...

  5. #5
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 650
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 650
    Points : 11 142
    Points
    11 142
    Par défaut
    Citation Envoyé par RomainVALERI Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Array.prototype.arraySum = function() {
        for (var s = 0, i = 0, iMax = this.length; i < iMax; ++i) {
            s += +this[i];
        }
        return s;
    }
    Bonjour RomainVALERI,

    j'avoue ne pas avoir testé ton code mais this[i] me laisse perplexe. La tableau généré par le split ne doit contenir que des caractères donc this[i] est un caractère... Par conséquent, je me demande s'il ne faut pas un parseInt() ou un parseFloat() sur le this[i] ? A moins que le + ne fasse la conversion en nombre ?

  6. #6
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Citation Envoyé par Auteur
    A moins que le + ne fasse la conversion en nombre ?
    Oui, le + utilisé en préfixe devient un opérateur de transtypage en Number


  7. #7
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 650
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 650
    Points : 11 142
    Points
    11 142
    Par défaut
    Citation Envoyé par Bovino Voir le message
    Oui, le + utilisé en préfixe devient un opérateur de transtypage en Number

    ok autant pour moi

  8. #8
    Expert confirmé
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Points : 4 164
    Points
    4 164
    Par défaut franchement HS...
    Citation Envoyé par Auteur Voir le message
    ok autant pour moi
    Au temps pour toi (je sais, cette graphie est franchement contre-intuitive, j'ai longtemps fait l'erreur aussi... )

  9. #9
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Citation Envoyé par RomainVALERI
    Au temps pour toi (je sais, cette graphie est franchement contre-intuitive, j'ai longtemps fait l'erreur aussi... )
    Bah non... cette expression vient du monde de la musique lorsqu'un des musiciens est en décalage, il s'excuse donc, à juste titre, d'avoir un temps de décalage

  10. #10
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 650
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 650
    Points : 11 142
    Points
    11 142
    Par défaut
    Citation Envoyé par RomainVALERI Voir le message
    Au temps pour toi (je sais, cette graphie est franchement contre-intuitive, j'ai longtemps fait l'erreur aussi... )
    J'ai hésité entre les deux graphies au moment d'écrire mon message

  11. #11
    Expert éminent sénior

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Points : 79 912
    Points
    79 912
    Par défaut
    Ah. On m'avais dit que c'était lié aux militaires lorsqu'ils se trompaient sur le "pas". Ce qui reste "musical".

    Autant c'est pour la notion de quantité ou d'égalité.

    - J'aimerais trois bières, s'il vous plait.
    - J'en aimerais autant !

    -------------

    - J'en ai marre de la politique belge.
    - Pas autant que moi...

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

Discussions similaires

  1. [AC-2007] Comment calculer la somme de 3 champ sur 4 dans un graphique
    Par rch05 dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 17/02/2011, 16h55
  2. Calcul de somme sur un champ text
    Par davelop dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 05/11/2010, 08h35
  3. [AC-2003] Bloqué pour calculer la somme d'un champ entre 2 date
    Par bastien3117 dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 24/08/2009, 13h08
  4. Requete DB grid calcule de somme d'un champ
    Par toure32 dans le forum Bases de données
    Réponses: 2
    Dernier message: 07/01/2007, 07h23
  5. Réponses: 3
    Dernier message: 24/08/2006, 11h56

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