回答編集履歴

2

mapを使う理由付けを記載

2020/02/10 08:50

投稿

miyabi-sun
miyabi-sun

スコア21203

test CHANGED
@@ -28,6 +28,20 @@
28
28
 
29
29
 
30
30
 
31
+ しかし、重複してるコピペコードをよく見てください。
32
+
33
+ 変更箇所は`"102", "201", "202", "303", "401"`の部分だけですよね?
34
+
35
+ ならば最も適切なのは`["102", "201", "202", "303", "401"]`というルームナンバーリストという配列からmapでキー情報を取り出す事になります。
36
+
37
+
38
+
39
+ これでコピペコード郡が一掃されます。
40
+
41
+ それではいきましょう。
42
+
43
+
44
+
31
45
  ```js
32
46
 
33
47
  const keys = [
@@ -44,9 +58,9 @@
44
58
 
45
59
 
46
60
 
47
- // reListみたなもは不要
61
+ // このように欲し鍵情報配列を準備したが
48
-
62
+
49
- // 欲しい部屋番号から対応したのに変形させれば良い
63
+ // 直接["102", "201", "202", "303", "401"].map(fn)とやっても良い
50
64
 
51
65
  const rooms = ["102", "201", "202", "303", "401"];
52
66
 

1

filter→findの本文追加

2020/02/10 08:50

投稿

miyabi-sun
miyabi-sun

スコア21203

test CHANGED
@@ -108,6 +108,24 @@
108
108
 
109
109
  続いて本当にfilterが妥当なものなのかを考える必要があります。
110
110
 
111
+ before、afterのデータとコードを見る限りfilterである意味が微塵もありません。
112
+
113
+
114
+
115
+ 一つの鍵で複数の部屋を開けられる(マスターキー?)という時点で仰天ですが、
116
+
117
+ その割には大した数のドアは開けられませんし、掃除してくれる方に対するセキュリティなのかな?
118
+
119
+ まぁいいや、清掃担当用のマスターキーと仮定しましょう。
120
+
121
+
122
+
123
+ もし一つの部屋が複数のマスターキーで開けられて、
124
+
125
+ 全ての鍵を列挙しなければならないのであれば別ですが、
126
+
127
+ 一つの部屋が一つのマスターでしか開けられない前提ならばfilterは混乱の元でしかないのでfindにしてしまいましょう。
128
+
111
129
 
112
130
 
113
131
  ```js