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

回答編集履歴

2

質問の変更に合わせて追記

2021/12/28 08:57

投稿

Lhankor_Mhy
Lhankor_Mhy

スコア37595

answer CHANGED
@@ -1,7 +1,6 @@
1
1
  yambejpさんのご回答にもあるように、正負で非対称なので条件式が含まれることになりそうです。
2
2
 
3
3
  ```js
4
-
5
4
  let number = -10;
6
5
  const images = ["img01", "img02", "img03", "img04", "img05"];
7
6
  while (number < 20) console.log(number,
@@ -57,4 +56,17 @@
57
56
  console.log(number,
58
57
  images[Math.abs((Math.abs(number + images.length * Math.sign(Math.sign(++number))) - 1) % ((images.length - 1) * 2) - (images.length - 1))],
59
58
  );
59
+ ```
60
+
61
+ ---
62
+
63
+ # 質問の変更に合わせて追記
64
+
65
+ ```js
66
+ let number = -10;
67
+ const images = ["img01", "img02", "img03", "img04", "img05"];
68
+ while (number < 20)
69
+ console.log(number,
70
+ images[Math.abs((Math.abs(number++) + images.length - 1) % ((images.length - 1) * 2) - (images.length - 1))],
71
+ );
60
72
  ```

1

追記

2021/12/28 08:57

投稿

Lhankor_Mhy
Lhankor_Mhy

スコア37595

answer CHANGED
@@ -44,4 +44,17 @@
44
44
 
45
45
  */
46
46
 
47
+ ```
48
+
49
+ ---
50
+
51
+ # 追記
52
+
53
+ Math.sign を使って条件式を外してみましたが、かなり読みにくいコードになりました。
54
+
55
+ ```js
56
+ while (number < 20)
57
+ console.log(number,
58
+ images[Math.abs((Math.abs(number + images.length * Math.sign(Math.sign(++number))) - 1) % ((images.length - 1) * 2) - (images.length - 1))],
59
+ );
47
60
  ```