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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Février 2006
    Messages
    96
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Février 2006
    Messages : 96
    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 207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 207
    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 confirmé
    Inscrit en
    Février 2006
    Messages
    96
    Détails du profil
    Informations personnelles :
    Âge : 45

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

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

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

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    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 confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 660
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 660
    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 : 54
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    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

    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

+ 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