回答編集履歴
2
内容を追加
test
CHANGED
@@ -64,3 +64,25 @@
|
|
64
64
|
プライオリティを管理する、キーを列挙した配列を定義するだとか、方法はあるがそれが読みやすい方法であるか?は疑問。
|
65
65
|
代入が一度だけで充分だとかを明示できる文法があればそれを使うべきだとは思う。
|
66
66
|
また、デフォルトはデフォルトとして記述し上書きする可能性があることを示す方が若干読みやすくはあるかと思う。
|
67
|
+
|
68
|
+
---
|
69
|
+
|
70
|
+
追記。元のコードが正しいとして、こういった方法も考えてみました。
|
71
|
+
処理としては関連がある、例外的な処理もあると考えて書いていますが、見やすさについては色々ありえると思います。
|
72
|
+
そもそもとして、別に列挙しても問題ないだろうとも思いますし、一連の処理なのでどんなデータが来てもこう動くだろうと推測することでわかりやすいともとらえれます。
|
73
|
+
|
74
|
+
```js
|
75
|
+
// 最初に存在した文字列を取得する
|
76
|
+
let existsName = [LocalityName, SubAdministrativeAreaName, AdministrativeAreaName].find((name) => name)
|
77
|
+
// すべて存在しない場合
|
78
|
+
if (!existsName) {
|
79
|
+
const defaultStr = 'Middle-of-Nowhere'
|
80
|
+
const defaultStr2 = ', Planet Earth'
|
81
|
+
if (CountryName) {
|
82
|
+
existsName += CountryName
|
83
|
+
} else {
|
84
|
+
existsName += defaultStr2
|
85
|
+
}
|
86
|
+
}
|
87
|
+
```
|
88
|
+
|
1
ソースコードを追記
test
CHANGED
@@ -29,3 +29,38 @@
|
|
29
29
|
|
30
30
|
基本的に読みやすく使いやすいというのはポリモーフィズムにより実現できるかと思うので、そういったパターンを適用可能な範囲に目を向けるべきで、名前、テクニック、美しさが品質に寄与するだろうというのは思想の一種でしかないのではないでしょうか。
|
31
31
|
|
32
|
+
|
33
|
+
実際のソースコード(雑な例)
|
34
|
+
```js
|
35
|
+
let location_info = {
|
36
|
+
"LocalityName": "Santa Monica",
|
37
|
+
"SubAdministrativeAreaName": "Los Angeles",
|
38
|
+
"AdministrativeAreaName": "California",
|
39
|
+
"CountryName": "USA"
|
40
|
+
};
|
41
|
+
|
42
|
+
// 入力されている location_info オブジェクトから、LocalityName(都市)、SubAdministrativeAreaName(都市圏)、AdministrativeAreaName(州)、CountryName(国)を取得し、整形して出力する。
|
43
|
+
const { LocalityName, SubAdministrativeAreaName, AdministrativeAreaName, CountryName } = location_info
|
44
|
+
|
45
|
+
// もし都市名がない場合は都市圏名、さらにない場合は州名、最終的に国名を取得して表示する。
|
46
|
+
let existsName = ''
|
47
|
+
if(LocalityName) {
|
48
|
+
existsName = LocalityName
|
49
|
+
} else if (SubAdministrativeAreaName) {
|
50
|
+
existsName = SubAdministrativeAreaName
|
51
|
+
} else if (AdministrativeAreaName) {
|
52
|
+
existsName = AdministrativeAreaName
|
53
|
+
} else if (CountryName) {
|
54
|
+
existsName = CountryName
|
55
|
+
} else {
|
56
|
+
// それらが全てない場合はデフォルトの文字列(例:「Middle-of-Nowhere, Planet Earth」)を表示する。
|
57
|
+
const defaultStr = 'Middle-of-Nowhere, Planet Earth'
|
58
|
+
existsName = defaultStr
|
59
|
+
}
|
60
|
+
|
61
|
+
alert(existsName)
|
62
|
+
```
|
63
|
+
|
64
|
+
プライオリティを管理する、キーを列挙した配列を定義するだとか、方法はあるがそれが読みやすい方法であるか?は疑問。
|
65
|
+
代入が一度だけで充分だとかを明示できる文法があればそれを使うべきだとは思う。
|
66
|
+
また、デフォルトはデフォルトとして記述し上書きする可能性があることを示す方が若干読みやすくはあるかと思う。
|