JavaScriptでブール論理ゲート(AND・OR・XOR)を計算する関数の実装方法
問題
今回は、ブール値(true / false)の配列と論理演算子を受け取り、配列内の各要素へその演算子を順番に適用して、最終的なブール値を返すJavaScript関数を作成する必要があります。
対応する論理演算子は以下の3種類です。
- AND(論理積):すべての値が true の場合のみ true を返す
- OR(論理和):いずれかの値が true であれば true を返す
- XOR(排他的論理和):隣り合う値が異なる場合に true を返す
コード例
以下がその実装コードです。
const array = [true, true, false];
const op = 'AND';
function logicalCalc(array, op){
var result = array[0];
for(var i = 1; i < array.length; i++){
if(op == "AND"){
result = result && array[i];
}
if(op == "OR"){
result = result || array[i];
}
if(op == "XOR"){
result = result != array[i];
}
}
return result;
}
console.log(logicalCalc(array, op));
出力結果
false
コードの解説
この関数では、まず配列の最初の要素を初期値として変数 result に格納します。次に、for ループを使って2番目以降の各要素に対し、指定された論理演算子を順番に適用していきます。
- ANDの場合:
&&演算子を使用します。1つでも false が含まれていれば、結果は false になります。 - ORの場合:
||演算子を使用します。1つでも true が含まれていれば、結果は true になります。 - XORの場合:
!=(不等価)演算子を使用します。ブール値同士の比較では、両者が異なるときに true となるため、これで排他的論理和を実現できます。
上記の例では、配列 [true, true, false] に対して AND 演算を適用しています。途中までの計算結果は true ですが、最後の要素が false であるため、全体の結果は false となります。
-
JavaScriptのmatch()メソッドとは?正規表現で文字列を検索する方法を実例付きで解説
JavaScriptのmatch()メソッドは、文字列に対して正規表現によるパターンマッチングを実行し、一致する箇所が見つかった場合にその結果を配列オブジェクトとして返すメソッドです。文章中から特定のパターンに該当する部分をすべて抽出したい場合などに活用できます。 match()メソッドの基本構文 string.match(regexp) 引数には検索に使用する正規表現を指定します。正規表現に「g」フラグを付けると、文字列内のすべての一致結果が配列に格納されて返されます。なお、一致するものが見つからなかった場合は「null」が返される点に注意してください。 match()メソッドの使用例 以下
-
JavaScript入門:ブール値の短絡評価(ショートサーキット評価)の仕組みと使い方
JavaScriptでは、論理演算子 &&(論理AND)や ||(論理OR)を使う際に、「短絡評価(ショートサーキット評価)」と呼ばれる特殊な動作が発生します。これは、左側のオペランドだけで式全体の結果が確定できる場合、右側のオペランドを評価せずにスキップする仕組みです。 短絡評価の基本ルール &&(論理AND):左辺が false の場合、式全体が必ず false になるため、右辺は評価されません。 ||(論理OR):左辺が true の場合、式全体が必ず true になるため、右辺は評価されません。 この性質を利用すると、不要な関数呼び出しを避けたり、条