質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

1回答

1440閲覧

このjavascriptのコードの2,3,5行目の意味を教えてください。

CleanDiesel

総合スコア15

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2019/08/03 08:59

編集2019/08/03 09:28

このコードの2,3,5行目の意味を教えてください。

これは3つ以上の数の最大公約数を求めるコードです。引用元のリンク
アロー関数を使っているようですが、三項演算子などもありよくわかりません。
2,3,5行目では何をしているのですか?
どなたか教えてください。

該当のソースコード

javascript

1function gcd() { 2 var f = (a, b) => b ? f(b, a % b) : a 3 var ans = arguments[0] 4 for (var i = 1; i < arguments.length; i++) { 5 ans = f(ans, arguments[i]); 6 } 7 return ans 8} 9 10console.log(gcd(10,20,30,100)) 11// 10

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

CleanDiesel

2019/08/03 09:22

2,3,5行目で何をやっているのか教えてください。
退会済みユーザー

退会済みユーザー

2019/08/03 09:30

・アロー関数・三項演算子というキーワードを知っている ・引用元には「どちらもユークリッド互除法を利用しています。」と書かれている 理解するには十分なキーワードが揃っているので、検索すればわかると思いますが、 その上で何がわからないんでしょうか?
CleanDiesel

2019/08/03 09:52 編集

調べてみます。しばらくしたらまた書き直します。
guest

回答1

0

自己解決

自己解決したのでお知らせします。
わからないところを明確にするために自分の力でできるところまで調べることが大切だと実感しました。
回答者の方の気持ちになって考えることが大切なのですね。
今後質問の仕方には気を付けたいと思っております。

javascript

1function gcd() { 2 var f = (a, b) => b ? f(b, a % b) : a 3 //↑ここでアロー関数を使用して b=0になるまで、引数を何度も関数fに入れている。この関数でa, bの最大公約数が返される。 4 var ans = arguments[0] 5  //↑gcd()に渡された引数の一番目を取得。 6 for (var i = 1; i < arguments.length; i++) { 7 ans = f(ans, arguments[i]); 8 } 9 //↑まずgcd()の一番目の引数と二番目の引数の最大公約数を求める。その最大公約数と次の引数の最大公約数を求める。それを引数の数-1回繰り返し出てきたものが全体の最大公約数。 10 return ans 11  //↑全体の最大公約数を返す。 12} 13 14console.log(gcd(10,20,30,100)) 15// 10

投稿2019/08/03 11:08

CleanDiesel

総合スコア15

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2019/08/03 13:06

> //↑ここでアロー関数を使用して b=0になるまで、引数を何度も関数fに入れている。 この処理の仕方には名前がついていて、「再帰」って呼ばれます。 実務ではアンチパターンになるケースが多いですが、よくある考え方なので、調べておくと良いです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問