JavaScriptでconst配列を作成する方法!要素の値は変更できる?わかりやすく解説
JavaScriptでconst配列を作成するには?
JavaScriptで定数配列(const配列)を作成するには、配列名の前にconstを記述するだけです。constで宣言された配列は、個々の要素の値を再代入(変更)することは可能ですが、配列全体を新しい配列で再代入することはできません。
これは、constが固定するのは「変数への参照(バインディング)」であって、配列の中身そのものではないためです。もし配列の内容自体も変更不可にしたい場合は、Object.freeze()メソッドを使用します。
以下は、JavaScriptで定数配列を作成するサンプルコードです。
コード例
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<style>
body {
font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
}
.result,.sample {
font-size: 20px;
font-weight: 500;
}
</style>
</head>
<body>
<h1>JavaScriptのconst配列</h1>
<div class="sample"></div>
<div style="color: green;" class="result"></div>
<button class="Btn">CLICK HERE</button>
<h3>
上のボタンをクリックすると、配列の要素値を変更し、その後で配列の再代入を試みます
</h3>
<script>
let sampleEle = document.querySelector(".sample");
let resEle = document.querySelector(".result");
const arr = [22, 33, 44, 55];
sampleEle.innerHTML = "元の配列 = " + arr;
document.querySelector(".Btn").addEventListener("click", () => {
(arr[0] = 44), (arr[1] = 99), (arr[2] = 0);
resEle.innerHTML += "配列要素の値を変更:" + arr + '<br>';
try {
arr = [11, 11, 11, 11];
}
catch (err) {
resEle.innerHTML += "const配列の再代入を試みた結果 = " + err;
}
});
</script>
</body>
</html>
出力結果
上記のコードを実行すると、次のような出力が得られます。

「CLICK HERE」ボタンをクリックすると −

このように、ボタンをクリックして個々の要素(arr[0]、arr[1]、arr[2])の値を変更することは成功しますが、arr = [11, 11, 11, 11]のように配列全体を再代入しようとするとエラー(TypeError: Assignment to constant variable)が発生することが確認できます。
-
JavaScript配列から一意の値(重複なし)を取得する方法
JavaScriptの配列に含まれる重複した値を取り除き、一意の値(ユニークな値)だけを取得したい場合は、Setオブジェクトを使うのが最もシンプルで効率的な方法です。 Setは同じ値を1つしか格納できないデータ構造のため、配列をnew Set()に渡すだけで自動的に重複が排除されます。その後、スプレッド構文([...set])を使えば、簡単に元の配列形式へ戻すことができます。 サンプルコード 以下は、JavaScriptの配列からすべての一意の値を取得する実際のコード例です。 <!DOCTYPE html> <html lang=ja> <head> <
-
複数の値でJavaScript配列の要素を検索する方法
JavaScriptである配列(arr)が、別の配列(arr1)の複数の値・すべての要素を含んでいるかどうかを確認したい場面はよくあります。そんなときは、every()メソッドとincludes()メソッドを組み合わせることで、シンプルに判定できます。以下はそのサンプルコードです。 コード例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content=