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 :

calcul nombre d'occurences de valeurs dans un tableau


Sujet :

JavaScript

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Inscrit en
    Juin 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juin 2011
    Messages : 7
    Points : 5
    Points
    5
    Par défaut calcul nombre d'occurences de valeurs dans un tableau
    Bonjour,

    Je souhaite calculer le nombre d’occurrences des valeurs d'un tableau.

    Par exemple pour un tableau t
    t=[1,2,3,3,3,3,4,4];

    J'aimerais pouvoir dire qu'il y a une fois le chiffre 1, une fois le chiffre 2, 4 fois le chiffre 3 et deux fois 4.

    Il me semble devoir faire une double boucle mais je sèche au niveau de la sortie des résultats.

    Merci bien pour votre aide.

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 669
    Points
    66 669
    Billets dans le blog
    1
    Par défaut
    avec un test
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    while(t.indexOf(valeur))
    bascule les valeurs dans des arrays temporaires
    le length de chacun des arrays obtenu te donnera le nombre d'occurrences de chaque valeur ...

  3. #3
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    function countOccurences(tab){
    	var result = {};
    	tab.forEach(function(elem){
    		if(elem in result){
    			result[elem] = ++result[elem];
    		}
    		else{
    			result[elem] = 1;
    		}
    	});
    	return result;
    }
    countOccurences([1,2,3,3,3,3,4,4]);

  4. #4
    Futur Membre du Club
    Femme Profil pro
    Inscrit en
    Juin 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juin 2011
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    C'est ce que je comptais en effet faire.

    J'arrive à ce que je veux lorsque je détermine par avance la valeur que je cherche.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    a=4
    t=[1,2,3,4,4,4];
    tabOcc=[];
     
    for (i=0; i<t.length;i++)  {
     if (t[i]===a) tabOcc.push(t[i]); };
    et ensuite tabOcc.length me donne 3.

    Mais je coince pour faire la boucle pour chaque valeur. faut-il que je crée un autre tableau pour récupérer chaque valeur de length des différents tableaux tabOcc que je créée ? J'espère que je suis claire !

  5. #5
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 669
    Points
    66 669
    Billets dans le blog
    1
    Par défaut
    le methode de Beef est plus directe
    mais si tu veux quelque chose qui se rapproche plus de ton algo:

    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
    var t=[1,2,3,4,4,4];
    var i=-1;
    var res={};
    while(t[++i]){
    	if(!res[t[i]]){
     			res[t[i]]=1;
     			}
     	else{		
     	 var j=i-1;
    		while( t[++j]){
     						if(t[i]==t[j]){
     									res[t[i]]++;
     							}
     	}
     
    }	
     
    }

Discussions similaires

  1. Compter nombre de répétitions des valeurs dans un tableau
    Par tabrouri2000 dans le forum Collection et Stream
    Réponses: 16
    Dernier message: 21/03/2021, 20h47
  2. calcul nombre d'occurence dans un formulaire
    Par totor92290 dans le forum IHM
    Réponses: 9
    Dernier message: 01/11/2012, 00h37
  3. calculer le nombre d'occurence de mot dans une chaine
    Par hadjiphp dans le forum Langage
    Réponses: 8
    Dernier message: 20/04/2009, 11h06
  4. Occurence de valeurs dans un tableau
    Par cjcriot dans le forum C
    Réponses: 3
    Dernier message: 31/12/2008, 16h55

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