2017-04-05 8 views
-1

問題:このコードでこの余分な「+」は何を表していますか?再帰関数

数字根の数はすべての桁の再帰的な和です。 nが与えられると、nの桁の和を取る。その値が2桁の場合は、このように1桁の数字が生成されるまで縮小し続けます。これは自然数にのみ適用されます。

example: 
digital_root(16) 
=> 1 + 6 
=> 7 

これは、コード化された機能である:誰かが余分+は、このコード行でやっていることを明確にすることができ

function digital_root(n) { 
if (n < 10) { 
    return n; 
    } 
     return digital_root(n.toString().split('').reduce(function (a, b) { 
     return a + +b; 
     }, 0)); 
} 

return a + +b;

+0

文字列を数値などに変換します。あなたは 'a + Number(b)'でそれを行うことができます。 – zerkms

+0

ああ!私は本当に助けを感謝します – jalexyep

答えて

0

おそらく、文字列を整数に変換するうっかりしない方法です。これはどの言語であるかは言いませんが、多くの動的言語では、宣言なしで変数を任意の型にすることができ、文字列と数値の間の暗黙的な変換により、追加と文字列の連結にはどちらも使用します。+そのような言語は、間違ったことを間違って取得することを容易にします(追加しようとするときに連結する、またはその逆)。

しかし、単項式+は(通常は)数値の識別情報であり、引数を数値に変換します(文字列の場合は、引数がすでに数値であれば何もしません)。したがって、バイナリ+は、連結するのではなく、追加されます。

+0

'整数に文字列' - > '数値に文字列' – zerkms

関連する問題