JavaScript
 Computer >> コンピューター >  >> プログラミング >> JavaScript

JavaScriptでブール行列を作成・更新するには?fill()メソッドの使い方を解説

fill()メソッドでブール行列を生成する基本

JavaScriptでは、fill()メソッドの仕組みを活用することで、trueだけで構成されたブール行列(二次元配列)を簡単に作成できます。fill()は、配列の要素を引数に渡した静的な値で一括して埋めるためのメソッドです。

コード例

const array = Array(4);
var fillWithTrueValue = array.fill(true);
const matrixWithOnlyBooleanTrue = Array(4).fill(fillWithTrueValue);
console.log(matrixWithOnlyBooleanTrue);

まず Array(4) で長さ4の配列を生成し、fill(true) ですべての要素を true にします。さらにその配列を Array(4).fill() の引数として渡すことで、4×4のブール行列が完成します。

プログラムの実行方法

上記のプログラムを実行するには、Node.js環境で次のコマンドを使用します。

node fileName.js

ここでは、ファイル名を「demo59.js」としています。

出力結果

実行すると、以下のようにすべての要素が true の4×4行列が出力されます。

PS C:\Users\Amit\JavaScript-code> node demo59.js
[
    [ true, true, true, true ],
    [ true, true, true, true ],
    [ true, true, true, true ],
    [ true, true, true, true ]
]

注意点:特定のインデックスを更新すると全行が変わる

このコードには重要な注意点があります。Array(4).fill(fillWithTrueValue) では、同じ配列オブジェクトへの参照が4つの行すべてに格納されているのです。そのため、たとえば次のように特定のインデックスを更新すると、

matrixWithOnlyBooleanTrue[0][0] = false;

意図に反してすべての行の先頭要素が同時に false に変更されてしまいます。

安全な解決策:map()で独立した行を生成する

各行を独立した配列として扱いたい場合は、map() を組み合わせて、行ごとに新しい配列を生成するのが安全です。

const matrix = Array.from({ length: 4 }, () => new Array(4).fill(true));
matrix[0][0] = false; // 最初の行だけが変更される
console.log(matrix);

この方法なら、特定のインデックスを個別に更新しても他の行へ影響が波及しないため、実務でも推奨される書き方です。

  1. 【初心者向け】JavaScriptのBooleanコンストラクタープロパティの使い方とサンプルコード

    Booleanコンストラクタープロパティは、Booleanプロトタイプを生成したコンストラクター関数を返すプロパティです。真偽値からこのプロパティを参照することで、その値がどの関数によって作成されたのかを簡単に確認できます。 ここでは、JavaScriptのBooleanコンストラクタープロパティを使った具体的なコード例を紹介します。ボタンをクリックすると、画面上にコンストラクター関数の内容が表示される仕組みになっています。 サンプルコード <!DOCTYPE html> <html> <head> <style>   &nb

  2. JavaScriptで文字列を真偽値(Boolean)に変換する方法

    JavaScriptでは、文字列が「true」というリテラルと一致するかどうかを比較演算子で判定することで、文字列を実質的に真偽値(Boolean)として扱うことができます。ここでは、==(緩い等価比較)と===(厳密等価比較)の2つの方法を使った具体例を紹介します。 サンプルコード <!DOCTYPE html> <html> <head> <style>     body {         font-family: &