Décrivez ici votre problème ou ce que vous cherchez à faire.

// Calcul de la somme réduite à 1 chiffre
function sommeRéduite(somme) {
    var arr = somme.toString().split('').map(Number);
    var nb_réduit = arr.reduce((a, b) => a + b, 0);
    console.log("nb-réduit =", nb_réduit);
    if (nb_réduit <= 9) {
        console.log("nb-réduit =", nb_réduit);
        return nb_réduit;
    } else {
        sommeRéduite(nb_réduit);        
    }
}

var résult = sommeRéduite(55);
console.log(résult);

Ce que je veux

Je voudrais récupérer la valeur de résult en sortie de la fonction "sommeRéduite".

Ce que j'obtiens

Console.log(résult) renvoie "undefined" alors que je cherche à récupérer la somme réduite de "55" qui est "1".
1ère boucle -> 5+5 = 10;
2ème boucle -> 1+0=1;
sortie de boucle -> 1

2 réponses


Pitet
Réponse acceptée

Bonjour,

Ajoute un return dans ton bloc else :

function sommeRéduite(somme) {
    var arr = somme.toString().split('').map(Number);
    var nb_réduit = arr.reduce((a, b) => a + b, 0);
    console.log("nb-réduit :", nb_réduit);
    if (nb_réduit <= 9) {
        console.log("nb-réduit =", nb_réduit);
        return nb_réduit;
    } else {
        return sommeRéduite(nb_réduit);        
    }
}
Phildz
Auteur

Bonsoir,
Génial !! ça fonctionne parfaitement bien maintenant ;)
Merci beaucoup de ta réponse :)