#連想配列とは
JavaSciptには連想配列というものがあります。
- 連想配列では、1つの変数で複数の「キー」と「値」を保持できます。
- キーは任意の文字列を使うことができます。
- 各項目をプロパティと呼びます。(キーのことをプロパティとも呼びます)
- 構文は、キーと値を波括弧
{}
でくくります。(項目が複数の場合はカンマで区切ります。) - 連想配列はオブジェクトリテラルまたはハッシュとも呼ばれます。
- 配列の
array
オブジェクトを継承していません。(arrayオブジェクトのメソッドやプロパティは使えません)
#宣言の仕方
const a = {};
// または
const a = new Object();
// で連想配列を宣言する
とすることで宣言することができます。
サンプルを作ってみます。
const animals = {a1:"犬",a2:"猫",a3:"鳥"};
console.log(animals["a1"]); // 犬
console.log(animals["a2"]); // 猫
console.log(animals["a3"]); // 鳥
####その他の使い方を例で説明していきます。
#項目を追加する方法
const animals = {a1:"犬",a2:"猫",a3:"鳥"};
animals["a4"] = "熊";
console.log(animals);//{a1:"犬",a2:"猫",a3:"鳥",a4 :"熊"};
4つ目に追加することができました。
#項目を更新する
const animals = {a1:"犬",a2:"猫",a3:"鳥"};
animals["a2"] = "猿";
console.log(animals);//{a1:"犬",a2:"猿",a3:"鳥"};
既にあるキーの値を更新することができました。
#項目を削除する
const animals = {a1:"犬",a2:"猫",a3:"鳥"};
delete animals["a2"];
console.log(animals);//{a1:"犬",a3:"鳥"};
配列と同様delete
を使って削除できます。
#変更を禁止する
Object.freeze
を使用すると連想配列の変更を禁止にできます。
const animals = Object.freeze({a1:"犬",a2:"猫",a3:"鳥"});
console.log(animals["a1"]); // 犬
console.log(animals["a2"]); // 猫
console.log(animals["a3"]); // 鳥
animals["a4"] = "熊";
console.log(animals["a4"]);// undefined
console.log(animals);//{a1:"犬",a2:"猫",a3:"鳥"}
Object.freeze
を使用すると配列に追加させようとしてもできていないことがわかります。
#数を取得する
Object.keys(obj)
を使うことでできます。
const animals = {a1:"犬",a2:"猫",a3:"鳥"};
console.log(Object.keys(animals).length); // 3
Object.keys
メソッドとlength
プロパティを使用して連想配列の数を取得しています。(キーと値あわせて1つと数えます。)
#まとめ
少し難しいですがうまく使えると便利だと思うので少しでも役立ったら嬉しいです。
#参考リンク
[JavaScript 連想配列の仕組みと使い方のサンプル](https://itsakura.com/js-object-literal'JavaScript 連想配列の仕組みと使い方のサンプル')