Partage
  • Partager sur Facebook
  • Partager sur Twitter

boucle for qui ne fait pas tout les tours...

Sujet résolu
    16 décembre 2011 à 23:50:07

    Bonjour :)

    J'ai créé une fonction qui recherche la plus grande valeur dans un array.
    Dans celle ci, une autre fonction qui fait la somme d'un array d'un array (evolution[la plus grande valeur][somme valeur])


    Mon problème est de récupérer la plus grande valeur de mon array "evolution[plus grande valeur]"
    Je ne sais pourquoi mais la boucle "for" qui se trouve en bout de code, ne s'éxécute qu'une seul fois au lieu de 2...
    function Array_GetMax(){
    			var max = 0;
    		
    			function somme (object_array, resultat){
    				var resultat = 0
    				for(i=0;i<object_array.length;i++){
    					resultat += parseInt(object_array[i])
    				}
    				return resultat;
    			}
    
    			for(i=1; i<3; i++){
    				var object_array = evolution[i]
    				if(somme(object_array)>max){
    					max = somme(object_array)
    				}
    			}
    			alert(max)
    			return max;
    			
    		}
    


    D'ou vient le problème? :/

    Merci
    • Partager sur Facebook
    • Partager sur Twitter
      17 décembre 2011 à 0:02:06

      Ton problème vient du fait que tu n'as pas déclaré i en local. Du coup i est traité comme une variable globale à la fois pour ta fonction Array_GetMax et ta fonction somme

      Ainsi quand ta fonction somme modifie la valeur de i, elle modifie aussi la valeur du i qui est utilisé dans la boucle de la fonction Array_GetMax
      • Partager sur Facebook
      • Partager sur Twitter
        17 décembre 2011 à 0:52:26

        Ok j'ai compris :)

        Merci beaucoup !
        • Partager sur Facebook
        • Partager sur Twitter

        boucle for qui ne fait pas tout les tours...

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown