JavaScriptの開発で連想配列を使ったので調べてまとめてみました!
間違っていればご指摘お願いします!
結論
「連想配列とは、配列で添字(インデックス)に数字を与えているのに対して、好きな文字を与えることができる配列のことである。」
// 配列
var result_array = [
'70点', // 値1
'60点', // 値2
'92点' // 値3
];
// 連想配列
var result_associative_array = {
tarou : '70点', // キー1 : 値1
jirou : '60点', // キー2 : 値2
hanako : '92点' // キー4 : 値3
}
Hashと同じじゃないの?
それって、RubyでいうHashのことじゃないのかなと思ったので調べたところ、厳密には違うみたいです。
Rubyにおける連想配列(Hash)
Rubyのリファレンスマニュアルによると、Rubyにおける連想配列とは、ハッシュテーブルによる連想配列で、任意のオブジェクトにいるキーと、任意のオブジェクトによる値とを関連付けしています。
つまり、文字列のオブジェクトを配列の添え字に使い、値となるオブジェクトを関連付けし、変数として使えるものがRubyにおける連想配列(Hash)です。
result_hash = {
"tarou" => "70点",
"jirou" => "60点",
"hanako" => "92点"
}
JavaScriptにおける連想配列
JavaScriptにおける連想配列は、ObjectとMapが存在します。どちらもキーを値に設定したり、それらの値を受け取ったり、キーを削除したり、キーに何かが格納されているかどうかを判定したりすることができます。この意味で (そして他の内蔵オブジェクトがなかったため)、従来ObjectはMapとして使われてきました。今では、連想配列としては、Mapが利用されており、Objectは連想配列として扱ってはいけないようです。詳しくは下記のの記事を参考にしてみて下さい!
まとめ
- 「連想配列とは、配列で添字(インデックス)に数字を与えているのに対し、好きな文字を与えることができる配列のことである。」
- Rubyにおける連想配列はHashだけど、ハッシュテーブルによる連想配列である。
- JavaScriptにおける連想配列はMapであり、Objectは連想配列として扱ってはいけない。
- 「純粋な連想配列」、「RubyのHash」、「JavaScriptのMap」、「JavaScriptのObject」は、似て異なるものだった!
参考