【JavaScript】3辺の長さから直角三角形を判定する方法
はじめに
本記事では、3つの数値(a、b、c)を引数として受け取り、それらが直角三角形の3辺として成立するかどうかを判定するJavaScript関数の作成方法を解説します。直角三角形であれば true を、そうでなければ false を返すシンプルな実装です。
直角三角形の条件とは
三角形の3つの内角のうち、1つでも90度の角が存在すれば、その三角形は直角三角形と呼ばれます。
そして、ある角が90度になるのは、「最も長い辺の2乗」が「他の2辺の2乗の和」と等しくなる場合です。これはピタゴラスの定理(三平方の定理)として知られる数学の基本法則です。
例えば、辺の長さが 3、4、5 の場合は次のようになります。
3*3 + 4*4 = 5*5 = 25
このように 3² + 4² = 5² が成り立つため、辺 3・4・5 からなる三角形は直角三角形であることが分かります。
コード例
以下が実際の実装コードです。
const side1 = 8;
const side2 = 10;
const side3 = 6;
const isRightTriangle = (a, b, c) => {
const con1 = (a*a) === (b*b) + (c*c);
const con2 = (b*b) === (a*a) + (c*c);
const con3 = (c*c) === (a*a) + (b*b);
return con1 || con2 || con3;
};
console.log(isRightTriangle(side1, side2, side3));この関数のポイントは、どの辺が最も長いか(斜辺か)を事前に判断する必要がない点です。con1、con2、con3 の3つの条件式で、それぞれの辺が斜辺である場合のピタゴラスの定理を検証し、論理和(||)によって、いずれか1つでも成立していれば true を返します。
実行結果
コンソールには以下のように出力されます。
true
今回の例では、6² + 8² = 36 + 64 = 100 = 10² が成立しているため、辺 6・8・10 からなる三角形は直角三角形であり、関数は true を返しています。
-
JavaScriptのPromise(プロミス)とは?非同期処理の基本と使い方を解説
JavaScriptのPromise(プロミス)は、作成された時点ではまだ値が確定していない非同期処理を扱うためのオブジェクトです。APIリクエストやファイルの読み込みなど、完了まで時間がかかる処理について、「いずれ結果を受け取る」という約束を表現します。Promiseは、以下の3つの状態を持ちます。pending(保留中):処理がまだ完了しておらず、成功も失敗も確定していない初期状態fulfilled(履行済み):処理が正常に完了し、結果の値が利用できる状態rejected(拒否済み):処理が失敗し、エラーの理由が利用できる状態一度fulfilledまたはrejectedに遷移したPromi
-
JavaScriptのWeakSetとは?特徴と主要メソッド、サンプルコードをわかりやすく解説
JavaScriptのWeakSet(ウィークセット)は、オブジェクトを格納するためのコレクションです。Setと同様に、同じオブジェクトを重複して保存することはできません。WeakSetの主な特徴弱い参照で保持する:WeakSet内のオブジェクトへの参照が他に存在しなくなると、ガベージコレクションによって自動的にメモリから解放されます。そのため、メモリリークを防ぎたい場面で役立ちます。オブジェクトのみ格納可能:数値や文字列などのプリミティブ値は追加できません。列挙できない:Setのようなsizeプロパティや反復処理の仕組みを持たず、格納されている要素の一覧を取得することはできません。WeakS