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

回答編集履歴

2

別パターンも追記

2017/01/31 14:42

投稿

yamato_hikawa
yamato_hikawa

スコア2092

answer CHANGED
@@ -15,4 +15,17 @@
15
15
 
16
16
  pointSort([4, 1, 2, 3, 5, 7, 6], 4); // [4, 5, 6, 7, 1, 2, 3]
17
17
 
18
+ ```
19
+
20
+ 行数は減りますが、sort+concat+filter×2と、メソッドの使用回数は増えます。
21
+ ```javascript
22
+ const pointSort = function(array, num) {
23
+ const preSort = (a, b) => a - b,
24
+ overFilter = (v) => v >= num,
25
+ lessFilter = (v) => v < num,
26
+ arr = array.slice().sort(preSort);
27
+ return arr.filter(overFilter).concat(arr.filter(lessFilter));
28
+ };
29
+
30
+ pointSort([4, 1, 3, 2, 5, 7, 6], 4); // [4, 5, 6, 7, 1, 2, 3]
18
31
  ```

1

不要変数の削除

2017/01/31 14:42

投稿

yamato_hikawa
yamato_hikawa

スコア2092

answer CHANGED
@@ -8,12 +8,9 @@
8
8
  }
9
9
  return 1;
10
10
  }
11
-
12
11
  return a - b;
13
- },
12
+ };
14
- arr = array.slice().sort(preSort).sort(mainSort);
13
+ return array.slice().sort(preSort).sort(mainSort);
15
-
16
- return arr;
17
14
  };
18
15
 
19
16
  pointSort([4, 1, 2, 3, 5, 7, 6], 4); // [4, 5, 6, 7, 1, 2, 3]