1
私は3者演算子の周りに頭を浮かべるのに苦労しているので、私は最近出会って好きな例を取って、より基本的な(冗長ではあるが)表記にリファクタリングしようと考えた。しかし、私の実装はエラーをスローしますが、私が再構築しようとしている三値バージョンはうまく動作します。Euclidean GCFを実装すると、「Range Error:最大コールスタックサイズを超えました」という結果になります。
二つの数のGCFを計算するユークリッドのアルゴリズムの三元バージョン:
function gcd(a, b) {
return !b ? a : gcd(b, a % b);
}
そして、私は三項演算子のMDNの説明を読んだ
function gcf2(a, b) {
if(b !== a){
gcf2(b, a % b);
}
else {
g = b;
}
}
それを実装するに私の試みが、それは結果からまだ理解していないことは明らかです。
理解できない部分はありますか?最初の関数は '!b'を評価します。 'true'と評価すると' a'を返し、そうでなければ 'gcd(b、a%b)'を返します。 –