回答編集履歴

1

ちゃんと動くやーつ

2020/12/27 07:46

投稿

A_kirisaki
A_kirisaki

スコア2853

test CHANGED
@@ -7,3 +7,51 @@
7
7
  ```
8
8
 
9
9
  再帰使ってるのですぐスタックオーバーフローになっちゃいますが。
10
+
11
+
12
+
13
+ ### 追記
14
+
15
+ すみません脳死で作ってたのでツリーが偏ります。まじめにやると。
16
+
17
+ ```JavaScript
18
+
19
+ function build(xs){
20
+
21
+ if(xs === undefined || !Array.isArray(xs) || xs.length === 0){
22
+
23
+ return undefined
24
+
25
+ } else if(xs.length === 1){
26
+
27
+ return xs
28
+
29
+ } else if(xs.length === 2){
30
+
31
+ return xs
32
+
33
+ } else {
34
+
35
+ const i = Math.floor(xs.length / 2)
36
+
37
+ const inits = xs.splice(0, i)
38
+
39
+ const tails = xs.splice(i -i , xs.length)
40
+
41
+ return [build(inits), build(tails)]
42
+
43
+ }
44
+
45
+ }
46
+
47
+
48
+
49
+ ys = [...Array(10).keys()]
50
+
51
+ console.log(build(ys))
52
+
53
+ ```
54
+
55
+ こんな感じです。
56
+
57
+ [動くコード](https://playcode.io/718556)