回答編集履歴
3
テキスト修正
answer
CHANGED
@@ -107,7 +107,7 @@
|
|
107
107
|
return false;
|
108
108
|
}
|
109
109
|
```
|
110
|
-
ただ、上記だと、コード行数が増えますので、行数を減らそうとして`return`なしのアロー関数で書こうとすると、どこかで`reList` に `push` しなければならないので、違和感のあるとお感じの現状にならざるを得ないです。このように、アローの先の`return`を書かずにすむ行数の少ないコードを取るか、読んで違和感のよりないコードを採るか、という選択が互いにトレードオフに
|
110
|
+
ただ、上記だと、コード行数が増えますので、行数を減らそうとして`return`なしのアロー関数で書こうとすると、どこかで`reList` に `push` しなければならないので、違和感のあるとお感じの現状にならざるを得ないです。このように、アローの先の`return`を書かずにすむ行数の少ないコードを取るか、読んで違和感のより少ないコードを採るか、という選択が互いにトレードオフになることは、ままあります。(ちなみに、業務でそのような二者の選択があったら、読みやすいほうを私は採ります。)
|
111
111
|
|
112
112
|
コード全体の見直しに関しては、この回答の冒頭に挙げた
|
113
113
|
|
2
テキスト修正
answer
CHANGED
@@ -82,4 +82,36 @@
|
|
82
82
|
|
83
83
|
- **動作確認用CodePen:** [https://codepen.io/jun68ykt/pen/abOOoRy?editors=0012](https://codepen.io/jun68ykt/pen/abOOoRy?editors=0012)
|
84
84
|
|
85
|
-
以上、参考になれば幸いです。
|
85
|
+
以上、参考になれば幸いです。
|
86
|
+
|
87
|
+
|
88
|
+
### 追記
|
89
|
+
|
90
|
+
全体的な修正案ではなく、ご質問のコードの問題の部分
|
91
|
+
```javascript
|
92
|
+
key => /^room/.test(key) && x[key] === "102" && reList.push({"keyno":x.keyno ,"room":key,"room_no":x[key]})
|
93
|
+
```
|
94
|
+
|
95
|
+
についての本題である、
|
96
|
+
|
97
|
+
> someの条件部にpushを書いているのが、違和感がありまして。。
|
98
|
+
|
99
|
+
との違和感を無くすこと**のみ**に目的を限って、この部分への局所的な修正案を挙げますと、上記を以下のようにすれば、その違和感は多少減るのではと思います。
|
100
|
+
|
101
|
+
```javascript
|
102
|
+
key => {
|
103
|
+
if (/^room/.test(key) && x[key] === "102") {
|
104
|
+
reList.push( { "keyno":x.keyno ,"room":key,"room_no":x[key] } );
|
105
|
+
return true;
|
106
|
+
}
|
107
|
+
return false;
|
108
|
+
}
|
109
|
+
```
|
110
|
+
ただ、上記だと、コード行数が増えますので、行数を減らそうとして`return`なしのアロー関数で書こうとすると、どこかで`reList` に `push` しなければならないので、違和感のあるとお感じの現状にならざるを得ないです。このように、アローの先の`return`を書かずにすむ行数の少ないコードを取るか、読んで違和感のよりないコードを採るか、という選択が互いにトレードオフにになることは、ままあります。(ちなみに、業務でこの二者の選択があったら、読みやすいほうを私は採ります。)
|
111
|
+
|
112
|
+
コード全体の見直しに関しては、この回答の冒頭に挙げた
|
113
|
+
|
114
|
+
- 1. some を使いつつ見通しをよくする。
|
115
|
+
- 2. keys から別のデータ構造を作り、そこから結果を得る
|
116
|
+
|
117
|
+
や、他の回答者様からも有用な知見やコードが提示されていますので、そちらを参考にされるとよいかと思います。
|
1
テキスト修正
answer
CHANGED
@@ -51,14 +51,13 @@
|
|
51
51
|
|
52
52
|
### 2. keys から別のデータ構造を作り、そこから結果を得る
|
53
53
|
|
54
|
-
他の回答者様からも、keys から別のデータ構造を作る案がすでに提示されていますが、以下もそれらと同様に、別のデータ構造を得たうえで、そこから結果を得るようにたものです。以下では、キーと値が
|
54
|
+
他の回答者様からも、keys から別のデータ構造を作る案がすでに提示されていますが、以下もそれらと同様に、別のデータ構造を得たうえで、そこから結果を得るようにしたものです。以下では、キーと値が
|
55
55
|
|
56
56
|
```
|
57
57
|
"102" => { keyno: 'A1', room: 'room1' }
|
58
58
|
```
|
59
|
+
という形のエントリを全部屋分持った [Map](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Map)を作って、そこから結果を得ます。
|
59
60
|
|
60
|
-
のような形のエントリを全部屋分持った[Map](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Map)を作って、そこから結果を得ます
|
61
|
-
|
62
61
|
```javascript
|
63
62
|
const roomsMap = keys.reduce((map, keyInfo) => (
|
64
63
|
new Map([
|