teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

Refactor code

2017/06/11 01:53

投稿

gouf
gouf

スコア2321

answer CHANGED
@@ -9,22 +9,24 @@
9
9
  // Create an array like:
10
10
  // [0, 1, 2, 3, 4, 5, 4, 3, 2, 1]
11
11
  createUpDownCyclesArray = function(cycleLength) {
12
- arrayCombine = function(incrementalArray, decrementalArray) {
13
- decrementalArray.shift()
14
- decrementalArray.pop()
15
-
16
- return incrementalArray.concat(decrementalArray)
17
- }
18
-
19
12
  // Create an array like:
20
13
  // [0, 1, 2, 3, 4, 5]
21
14
  incrementalArray =
22
15
  Array.apply(null, Array(cycleLength + 1))
23
16
  .map(function(_, i) { return i })
24
17
 
18
+ // Create an array like:
19
+ // [0, 1, 2, 3, 4, 5] => [4, 3, 2, 1]
20
+ decrementalArray =
21
+ (function(incrementalArray){
25
- decrementalArray = incrementalArray.slice().reverse()
22
+ decrementalArray = incrementalArray.slice().reverse()
23
+ decrementalArray.shift()
24
+ decrementalArray.pop()
26
25
 
26
+ return decrementalArray
27
+ })(incrementalArray)
28
+
27
- return arrayCombine(incrementalArray, decrementalArray)
29
+ return incrementalArray.concat(decrementalArray)
28
30
  }
29
31
 
30
32
  self = this // for refer outer context of `this` from inner context