回答編集履歴

15

テキスト修正

2019/08/03 07:08

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -12,7 +12,7 @@
12
12
 
13
13
 
14
14
 
15
- とは、どの程度、配列が入れ子になっているのかご質問からは読み取れませんでしたので、入れ子深さ関わらず、長さが2で要素が文字列か数字であるような
15
+ とは、具体的にはどのような階層構造の中に目的の配列がるのかについて、ご質問からは読み取れませんでしたので、全体配列の中のどこあっても、長さが2で要素が文字列か数字であるような
16
16
 
17
17
 
18
18
 
@@ -20,7 +20,7 @@
20
20
 
21
21
 
22
22
 
23
- を拾い出すプログラムを作って解決するコードを書いてみした。なお、以下では、この
23
+ を拾い出すコードを回答し。なお、以下では、この
24
24
 
25
25
  > 一番小さい配列
26
26
 
@@ -28,7 +28,7 @@
28
28
 
29
29
 
30
30
 
31
- のことを `minimal` な配列と呼び、 minimal な配列の先頭要素を `head`, 2番目の要素を `tail` と呼ぶことにして、これらを変数名やプロパティ名、関数名に使っています。
31
+ のことを `minimal な配列` と呼び、 minimal な配列の先頭要素を `head`, 2番目の要素を `tail` と呼ぶことにして、これらを変数名やプロパティ名、関数名に使っています。
32
32
 
33
33
 
34
34
 

14

テキスト修正

2019/08/03 07:08

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -116,7 +116,7 @@
116
116
 
117
117
 
118
118
 
119
- 上記で、選ばれたファイルの内容を受け取って、結果を返す `assort` という関数を呼んでい。関数 `assort` は、以下のファイル `assort.js` の最後にあります。`assort.js` の中で、配列から重複を除くための処理に lodash の [uniqBy](https://lodash.com/docs/4.17.15#uniqBy) を使っています。
119
+ 上記で、選ばれたファイルの内容を受け取って、結果を返す `assort` という関数を作りした。関数 `assort` は、以下のファイル `assort.js` の最後にあります。minimal 配列を収集した後、重複を除くための処理に lodash の [uniqBy](https://lodash.com/docs/4.17.15#uniqBy) を使っています。
120
120
 
121
121
 
122
122
 
@@ -412,15 +412,15 @@
412
412
 
413
413
 
414
414
 
415
- - `getMinimals` が再帰関数になっているので、想定していない入力があると無限ループになる恐れがありますので、実用化するには何らかの対策が必要かもしれません。
415
+ - `getMinimals` が再帰関数になっているので、想定していない入力があると無限ループになる恐れがありますので、実用化するには何らかの対策が必要
416
-
417
-
418
-
416
+
417
+
418
+
419
- - 一度、すべての minimal な配列を拾い出してから分類しているので、やや冗長なコードになっていると思います。
419
+ - 一度、すべての minimal な配列を拾い出してから分類しているので、やや冗長なコードになっています。
420
-
421
-
422
-
420
+
421
+
422
+
423
- といったりますが、各論はさておき、上記のコードで示したいことは、
423
+ といった題がりますが、各論はさておき、上記のコードで示したいことは、
424
424
 
425
425
 
426
426
 

13

テキスト修正

2019/08/03 04:02

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -32,7 +32,7 @@
32
32
 
33
33
 
34
34
 
35
- ### index.html:
35
+ ### index.html
36
36
 
37
37
  ```html
38
38
 
@@ -120,7 +120,7 @@
120
120
 
121
121
 
122
122
 
123
- ### assort.js:
123
+ ### assort.js
124
124
 
125
125
  ```javascript
126
126
 

12

テキスト修正

2019/08/02 11:03

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -12,7 +12,7 @@
12
12
 
13
13
 
14
14
 
15
- とは、どの程度、配列が入れ子になっているのかがご質問からは読み取れませんでしたので、入れ子の深さにらず、長さが2で要素が文字列か数字であるような
15
+ とは、どの程度、配列が入れ子になっているのかがご質問からは読み取れませんでしたので、入れ子の深さに関わらず、長さが2で要素が文字列か数字であるような
16
16
 
17
17
 
18
18
 

11

テキスト修正

2019/08/02 04:21

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -408,11 +408,19 @@
408
408
 
409
409
 
410
410
 
411
+ 上記の回答に書いたコードでは、
412
+
413
+
414
+
411
- `getMinimals` が再帰関数になっているので、想定していない入力があると無限ループになる恐れがありますので、実用化するには何らかの対策が必要かもしれません。
415
+ - `getMinimals` が再帰関数になっているので、想定していない入力があると無限ループになる恐れがありますので、実用化するには何らかの対策が必要かもしれません。
416
+
417
+
418
+
412
-
419
+ - 一度、すべての minimal な配列を拾い出してから分類しているので、やや冗長なコードになっていると思います。
413
-
414
-
420
+
421
+
422
+
415
- 上記のコードで示したいは、
423
+ といった問題点がありますが、各論はさておき、上記のコードで示したいことは、
416
424
 
417
425
 
418
426
 
@@ -431,13 +439,3 @@
431
439
 
432
440
 
433
441
  以上、参考になれば幸いです。
434
-
435
-
436
-
437
-
438
-
439
- #### 追記
440
-
441
-
442
-
443
- 上記の回答に書いたコードは、やや冗長なコードになっていると思います。リファクタできたら、またのちほど追記します。

10

テキスト修正

2019/08/02 04:20

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -420,7 +420,7 @@
420
420
 
421
421
  2. JSONをパースして、JavaScript の配列を得る。
422
422
 
423
- 3. 得られた配列から、minimalな配列を拾い出すために再帰を使うことができる。
423
+ 3. 得られた配列の要素から、minimalな配列を拾い出すために再帰を使うことができる。
424
424
 
425
425
  4. 拾い出した minimalな配列 を分類する。
426
426
 

9

テキスト修正

2019/08/02 04:02

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -28,7 +28,7 @@
28
28
 
29
29
 
30
30
 
31
- のことを `minimal` な配列と呼び、 minimal な配列の先頭要素を `head`, 2番目の要素を `tail` ということにして、これらを変数名やプロパティ名、関数名に使っています。
31
+ のことを `minimal` な配列と呼び、 minimal な配列の先頭要素を `head`, 2番目の要素を `tail` と呼ぶことにして、これらを変数名やプロパティ名、関数名に使っています。
32
32
 
33
33
 
34
34
 

8

テキスト修正

2019/08/02 03:52

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -116,7 +116,7 @@
116
116
 
117
117
 
118
118
 
119
- 上記で、選ばれたファイルの内容を受け取って、結果を返す `assort` という関数を呼んでいます。これは以下のようなものです。(関数 assort は、以下のファイル assort.js の最後にあります。また、配列から重複を除くための処理に lodash の [uniqBy](https://lodash.com/docs/4.17.15#uniqBy) を使っています。
119
+ 上記で、選ばれたファイルの内容を受け取って、結果を返す `assort` という関数を呼んでいます。関数 `assort` は、以下のファイル `assort.js` の最後にあります。`assort.js` の中で、配列から重複を除くための処理に lodash の [uniqBy](https://lodash.com/docs/4.17.15#uniqBy) を使っています。
120
120
 
121
121
 
122
122
 

7

テキスト修正

2019/08/02 03:07

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -12,7 +12,7 @@
12
12
 
13
13
 
14
14
 
15
- いうのが、どの程度入れ子になっているのかがご質問からは読み取れませんでしたので、深さに限らず、長さが2で要素が文字列か数字であるような
15
+ 、どの程度、配列が入れ子になっているのかがご質問からは読み取れませんでしたので、入れ子の深さに限らず、長さが2で要素が文字列か数字であるような
16
16
 
17
17
 
18
18
 
@@ -28,7 +28,7 @@
28
28
 
29
29
 
30
30
 
31
- のことを `minimal` な配列と呼び、 minimal な配列の先頭要素を `head`, 2番目の要素を `tail` ということにして、変数名や関数名に使っています。
31
+ のことを `minimal` な配列と呼び、 minimal な配列の先頭要素を `head`, 2番目の要素を `tail` ということにして、これらを変数名やプロパティ名、関数名に使っています。
32
32
 
33
33
 
34
34
 

6

テキスト修正

2019/08/02 02:58

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -12,7 +12,7 @@
12
12
 
13
13
 
14
14
 
15
- というのが、どの程度入れ子になっているのかが、ご質問からは不明確だったので、深さに限らず、長さが2で要素が文字列か数字であるような
15
+ というのが、どの程度入れ子になっているのかが、ご質問からは読み取れませんでしたので、深さに限らず、長さが2で要素が文字列か数字であるような
16
16
 
17
17
 
18
18
 

5

テキスト修正

2019/08/02 02:21

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -230,11 +230,7 @@
230
230
 
231
231
  // 配列要素として出現する変数名をダブルコーテーションで囲む。
232
232
 
233
- const jsonStr = text.replace(/([a-z][a-z0-9]*)/g, name =>
233
+ const jsonStr = text.replace(/([a-z][a-z0-9]*)/g, name => `"${name}"`);
234
-
235
- `"${name}"`
236
-
237
- );
238
234
 
239
235
 
240
236
 

4

テキスト修正

2019/08/02 02:18

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -244,7 +244,7 @@
244
244
 
245
245
 
246
246
 
247
- // 最小配列(要素の数が2個で、要素が数文字列の配列) を収集
247
+ // 最小配列(要素の数が2個で、要素が数または文字列の配列) を収集
248
248
 
249
249
  const minimals = _.uniqBy(getMinimals(data), e => e.join(','))
250
250
 

3

テキスト修正

2019/08/02 02:17

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -424,7 +424,7 @@
424
424
 
425
425
  2. JSONをパースして、JavaScript の配列を得る。
426
426
 
427
- 3. 得られた配列から、minimalな配列を拾い出すために再帰を使う。
427
+ 3. 得られた配列から、minimalな配列を拾い出すために再帰を使うことができる
428
428
 
429
429
  4. 拾い出した minimalな配列 を分類する。
430
430
 

2

テキスト修正

2019/08/02 02:13

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -116,7 +116,7 @@
116
116
 
117
117
 
118
118
 
119
- 上記で、選ばれたファイルの内容を受け取って、結果を返す `assort` という関数を呼んでいます。これは以下のようなものです。(関数 assort は、以下のファイル assort.js の最後にあります。)
119
+ 上記で、選ばれたファイルの内容を受け取って、結果を返す `assort` という関数を呼んでいます。これは以下のようなものです。(関数 assort は、以下のファイル assort.js の最後にあります。また、配列から重複を除くための処理に lodash の [uniqBy](https://lodash.com/docs/4.17.15#uniqBy) を使っています。
120
120
 
121
121
 
122
122
 
@@ -444,4 +444,4 @@
444
444
 
445
445
 
446
446
 
447
- 上記の回答に書いたコードは、やや冗長なコードになっていると思いますので、リファクタできたら、またのちほど追記します。
447
+ 上記の回答に書いたコードは、やや冗長なコードになっていると思いますリファクタできたら、またのちほど追記します。

1

テキスト修正

2019/08/02 02:08

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -435,3 +435,13 @@
435
435
 
436
436
 
437
437
  以上、参考になれば幸いです。
438
+
439
+
440
+
441
+
442
+
443
+ #### 追記
444
+
445
+
446
+
447
+ 上記の回答に書いたコードは、やや冗長なコードになっていると思いますので、リファクタできたら、またのちほど追記します。