回答編集履歴

1

コード追加

2020/01/11 12:14

投稿

shiracamus
shiracamus

スコア5406

test CHANGED
@@ -1,3 +1,73 @@
1
1
  これと同じ?
2
2
 
3
3
  https://teratail.com/questions/234337
4
+
5
+
6
+
7
+ こんな感じ?
8
+
9
+
10
+
11
+ ```javascript
12
+
13
+ const data = [
14
+
15
+ [NaN, NaN, NaN, NaN],
16
+
17
+ [1, 2, 3, 4],
18
+
19
+ [1, 2, 3, 4],
20
+
21
+ [1, 2, 3, 4],
22
+
23
+ [5, 6, 7, 8],
24
+
25
+ [5, 6, 7, 8],
26
+
27
+ [5, 6, 7, 8],
28
+
29
+ [9, 10, 11, 12],
30
+
31
+ [9, 10, 11, 12],
32
+
33
+ [9, 10, 11, 12],
34
+
35
+ ];
36
+
37
+ const split = (array, n) => array.reduce(
38
+
39
+ (a, c, i) => i == 0 ? [c]
40
+
41
+ : i % n == 1 ? [...a, [...c]]
42
+
43
+ : [...a.slice(0, -1), a[a.length - 1].map((v, i) => v + c[i])],
44
+
45
+ []);
46
+
47
+ const result = split(data, 3);
48
+
49
+ console.log(result)
50
+
51
+ ```
52
+
53
+
54
+
55
+ 実行結果
56
+
57
+
58
+
59
+ ```
60
+
61
+ [
62
+
63
+ [ NaN, NaN, NaN, NaN ],
64
+
65
+ [ 3, 6, 9, 12 ],
66
+
67
+ [ 15, 18, 21, 24 ],
68
+
69
+ [ 27, 30, 33, 36 ]
70
+
71
+ ]
72
+
73
+ ```