teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

コードの選択基準

2019/10/20 01:15

投稿

think49
think49

スコア18194

answer CHANGED
@@ -1,3 +1,5 @@
1
+ ### new Map
2
+
1
3
  `[]` で定義される配列は**整数値以外のキー**を持てません。
2
4
  JavaScriptに連想配列はありませんが、近い機能に `new Map` があります。
3
5
 
@@ -10,4 +12,25 @@
10
12
  console.log(map.get('k1')); // {lat: 35.639014, lng: 139.638741, icon: "./z_icon/1_k.png"}
11
13
  ```
12
14
 
15
+ ### コードの選択基準
16
+
17
+ > 上記のraccy様へのコメントバックにも記載させていただいたのですが、全部をループしたい一方で特定のオブジェクト(配列)にもアクセスしたと言う二つの目的を達成したい場合、javascriptにおいてはこのようなmapクラスでデータを保管することが一般的なのでしょうか?
18
+
19
+ 「一般的」については回答しかねます。
20
+ 判断基準があいまいですし、固定観念は視野を狭くするので、出来るだけ排除するようにしています。
21
+
22
+ 私は次の流れで実装法を決定します。
23
+
24
+ 1. 要求仕様に合う実装法をリストアップ
25
+ 2. 各々の性質を調査→把握する
26
+ 3. その中から最善を選び取る
27
+
28
+ 今回のケースでは、`Object.create(null)` が候補に上がります。
29
+
30
+ - [[JavaScript] オブジェクト, Map, WeakMap の使い分け方.md · GitHub](https://gist.github.com/think49/31a2cedb5c653fd18086ade669c04323)
31
+
32
+ ※これらの作業は @pegy さんの役目だと思っています。
33
+ 他人に選択権を委ねないように注意してください。
34
+ 性質把握と選択を繰り返せば、「**自分だけの基準**」が出来ていくものです。
35
+
13
36
  Re: pegy さん

1

MDNリンク追加

2019/10/20 01:15

投稿

think49
think49

スコア18194

answer CHANGED
@@ -1,6 +1,8 @@
1
1
  `[]` で定義される配列は**整数値以外のキー**を持てません。
2
2
  JavaScriptに連想配列はありませんが、近い機能に `new Map` があります。
3
3
 
4
+ - [Map - JavaScript | MDN](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Map)
5
+
4
6
  ```JavaScriptに連想配列はありませんが、近いのは
5
7
  const map = new Map;
6
8