回答編集履歴

6

修正

2016/10/05 07:10

投稿

mpyw
mpyw

スコア5223

test CHANGED
@@ -60,9 +60,9 @@
60
60
 
61
61
 
62
62
 
63
- console.log(countToChars);
63
+ console.log(countToArrays);
64
64
 
65
- console.log(countToChars[2]);
65
+ console.log(countToArrays[2]);
66
66
 
67
67
  ```
68
68
 

5

修正

2016/10/05 07:10

投稿

mpyw
mpyw

スコア5223

test CHANGED
@@ -68,7 +68,7 @@
68
68
 
69
69
 
70
70
 
71
- さらにBabelでコンパイルする前提なら, countToChars の生成時に
71
+ さらにBabelでコンパイルする前提なら, countToArrays の生成時に
72
72
 
73
73
 
74
74
 

4

修正

2016/10/05 07:05

投稿

mpyw
mpyw

スコア5223

test CHANGED
@@ -24,15 +24,15 @@
24
24
 
25
25
 
26
26
 
27
- const chars = [].concat(...groups);
27
+ const serials = groups.map(JSON.stringify);
28
28
 
29
29
 
30
30
 
31
- const charToCount = chars.reduce(
31
+ const serialToCount = serials.reduce(
32
32
 
33
- (map, char) => (
33
+ (map, serial) => (
34
34
 
35
- map[char] = (map[char] || 0) + 1,
35
+ map[serial] = (map[serial] || 0) + 1,
36
36
 
37
37
  map
38
38
 
@@ -44,11 +44,11 @@
44
44
 
45
45
 
46
46
 
47
- const countToChars = Object.keys(charToCount).reduce(
47
+ const countToArrays = Object.keys(serialToCount).reduce(
48
48
 
49
- (map, char) => (
49
+ (map, serial) => (
50
50
 
51
- (map[charToCount[char]] = map[charToCount[char]] || []).push(char),
51
+ (map[serialToCount[serial]] = map[serialToCount[serial]] || []).push(JSON.parse(serial)),
52
52
 
53
53
  map
54
54
 
@@ -74,11 +74,11 @@
74
74
 
75
75
  ```JavaScript
76
76
 
77
- const countToChars = Object.entries(charToCount).reduce(
77
+ const countToArrays = Object.entries(serialToCount).reduce(
78
78
 
79
- (map, [char, count]) => (
79
+ (map, [serial, count]) => (
80
80
 
81
- (map[count] = (map[count] || [])).push(char),
81
+ (map[count] = (map[count] || [])).push(JSON.parse(serial)),
82
82
 
83
83
  map
84
84
 

3

Babel

2016/10/05 07:04

投稿

mpyw
mpyw

スコア5223

test CHANGED
@@ -92,6 +92,6 @@
92
92
 
93
93
 
94
94
 
95
- として分割代入を使ったほうがきれいですね.
95
+ として`Object.entries`と分割代入を使ったほうがきれいですね.
96
96
 
97
97
 

2

Babel

2016/10/05 06:52

投稿

mpyw
mpyw

スコア5223

test CHANGED
@@ -58,4 +58,40 @@
58
58
 
59
59
  );
60
60
 
61
+
62
+
63
+ console.log(countToChars);
64
+
65
+ console.log(countToChars[2]);
66
+
61
67
  ```
68
+
69
+
70
+
71
+ さらにBabelでコンパイルする前提なら, countToChars の生成時に
72
+
73
+
74
+
75
+ ```JavaScript
76
+
77
+ const countToChars = Object.entries(charToCount).reduce(
78
+
79
+ (map, [char, count]) => (
80
+
81
+ (map[count] = (map[count] || [])).push(char),
82
+
83
+ map
84
+
85
+ ),
86
+
87
+ {}
88
+
89
+ );
90
+
91
+ ```
92
+
93
+
94
+
95
+ として分割代入を使ったほうがきれいですね.
96
+
97
+

1

冗長

2016/10/05 06:51

投稿

mpyw
mpyw

スコア5223

test CHANGED
@@ -48,7 +48,7 @@
48
48
 
49
49
  (map, char) => (
50
50
 
51
- (map[charToCount[char]] = (map[charToCount[char]] || [])).push(char),
51
+ (map[charToCount[char]] = map[charToCount[char]] || []).push(char),
52
52
 
53
53
  map
54
54