回答編集履歴
6
修正
test
CHANGED
@@ -60,9 +60,9 @@
|
|
60
60
|
|
61
61
|
|
62
62
|
|
63
|
-
console.log(countTo
|
63
|
+
console.log(countToArrays);
|
64
64
|
|
65
|
-
console.log(countTo
|
65
|
+
console.log(countToArrays[2]);
|
66
66
|
|
67
67
|
```
|
68
68
|
|
5
修正
test
CHANGED
@@ -68,7 +68,7 @@
|
|
68
68
|
|
69
69
|
|
70
70
|
|
71
|
-
さらにBabelでコンパイルする前提なら, countTo
|
71
|
+
さらにBabelでコンパイルする前提なら, countToArrays の生成時に
|
72
72
|
|
73
73
|
|
74
74
|
|
4
修正
test
CHANGED
@@ -24,15 +24,15 @@
|
|
24
24
|
|
25
25
|
|
26
26
|
|
27
|
-
const
|
27
|
+
const serials = groups.map(JSON.stringify);
|
28
28
|
|
29
29
|
|
30
30
|
|
31
|
-
const
|
31
|
+
const serialToCount = serials.reduce(
|
32
32
|
|
33
|
-
(map,
|
33
|
+
(map, serial) => (
|
34
34
|
|
35
|
-
map[
|
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 countTo
|
47
|
+
const countToArrays = Object.keys(serialToCount).reduce(
|
48
48
|
|
49
|
-
(map,
|
49
|
+
(map, serial) => (
|
50
50
|
|
51
|
-
(map[
|
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 countTo
|
77
|
+
const countToArrays = Object.entries(serialToCount).reduce(
|
78
78
|
|
79
|
-
(map, [
|
79
|
+
(map, [serial, count]) => (
|
80
80
|
|
81
|
-
(map[count] = (map[count] || [])).push(
|
81
|
+
(map[count] = (map[count] || [])).push(JSON.parse(serial)),
|
82
82
|
|
83
83
|
map
|
84
84
|
|
3
Babel
test
CHANGED
@@ -92,6 +92,6 @@
|
|
92
92
|
|
93
93
|
|
94
94
|
|
95
|
-
として分割代入を使ったほうがきれいですね.
|
95
|
+
として`Object.entries`と分割代入を使ったほうがきれいですね.
|
96
96
|
|
97
97
|
|
2
Babel
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
冗長
test
CHANGED
@@ -48,7 +48,7 @@
|
|
48
48
|
|
49
49
|
(map, char) => (
|
50
50
|
|
51
|
-
(map[charToCount[char]] =
|
51
|
+
(map[charToCount[char]] = map[charToCount[char]] || []).push(char),
|
52
52
|
|
53
53
|
map
|
54
54
|
|