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

回答編集履歴

4

「カウントアップ」節を追記

2018/04/06 08:22

投稿

think49
think49

スコア18194

answer CHANGED
@@ -47,8 +47,27 @@
47
47
 
48
48
  - [推奨していない質問|teratail(テラテイル)](https://teratail.com/help/avoid-asking)
49
49
 
50
+ ### カウントアップ
51
+
52
+ > 1000円
53
+ >
54
+ > ↓ カウントアップ
55
+ >
56
+ > 1万0000円
57
+ >
58
+ > ↓ カウントアップ
59
+ >
60
+ > 1億0000万0000円
61
+
62
+ 「1000 -> 10000 -> 100000000」のように [カウントアップ] していくそうですが、1回目(10倍)と2回目(10000倍)で「かける数」が異なります。
63
+ 言葉通りに解釈すると、「11000 -> 100010000」になりますが、それでよいのでしょうか。
64
+ 「1円」を [カウントアップ] したら何倍されるのでしょう。
65
+
66
+ コードを書く前に動作手順を見直す必要がありそうです。
67
+
50
68
  ### 更新履歴
51
69
 
52
70
  - 2018/04/05 23:55 outerArray.length - innerArray.length > 1 の時にnullが代入される不具合を修正
71
+ - 2018/04/06 17:22 「カウントアップ」節を追記
53
72
 
54
73
  Re: hanasan さん

3

typo修正

2018/04/06 08:22

投稿

think49
think49

スコア18194

answer CHANGED
@@ -49,6 +49,6 @@
49
49
 
50
50
  ### 更新履歴
51
51
 
52
- - 2018/04/05 23:55 outerArray.length - innerArray > 1 の時にnullが代入される不具合を修正
52
+ - 2018/04/05 23:55 outerArray.length - innerArray.length > 1 の時にnullが代入される不具合を修正
53
53
 
54
54
  Re: hanasan さん

2

outerArray.length - innerArray > 1 の時にnullが代入される不具合を修正

2018/04/05 14:57

投稿

think49
think49

スコア18194

answer CHANGED
@@ -11,24 +11,30 @@
11
11
  ```JavaScript
12
12
  'use strict';
13
13
  function joinArray (outerArray, innerArray) {
14
- var results = [];
14
+ var results = [],
15
+ outerLen = outerArray.length,
16
+ innerLen = innerArray.length;
15
17
 
16
- for (var i = 0, len = outerArray.length - 1; i < len; ++i) {
18
+ for (var i = 0, len = Math.min(outerLen - 1, innerLen); i < len; ++i) {
17
19
  results.push(outerArray[i], innerArray[i]);
18
20
  }
19
21
 
22
+ while (i < outerLen) {
20
- results.push(outerArray[i]);
23
+ results.push(outerArray[i++]);
24
+ }
21
25
 
22
26
  return results;
23
27
  }
24
28
 
25
29
  function sample (string, innerArray) {
26
- return joinArray(String(string).match(/[\s\S]{3}|[\s\S]{1,2}$/g), innerArray);
30
+ return joinArray(String(string).match(/[\s\S]{3}|[\s\S]{1,2}$|^$/g), innerArray);
27
31
  }
28
32
 
29
33
  console.log(JSON.stringify(sample('000000000', ['hoge', 'foo']))); // ["000","hoge","000","foo","000"]
30
34
  console.log(JSON.stringify(sample('00000000', ['hoge', 'foo']))); // ["000","hoge","000","foo","00"]
31
35
  console.log(JSON.stringify(sample('0000000', ['hoge', 'foo']))); // ["000","hoge","000","foo","0"]
36
+ console.log(JSON.stringify(sample('0000000', ['hoge']))); // ["000","hoge","000","0"]
37
+ console.log(JSON.stringify(sample('000', ['hoge']))); // ["000"]
32
38
  console.log(JSON.stringify(sample('000', ['hoge', 'foo']))); // ["000"]
33
39
  console.log(JSON.stringify(sample('00', ['hoge', 'foo']))); // ["00"]
34
40
  console.log(JSON.stringify(sample('0', ['hoge', 'foo']))); // ["0"]
@@ -41,4 +47,8 @@
41
47
 
42
48
  - [推奨していない質問|teratail(テラテイル)](https://teratail.com/help/avoid-asking)
43
49
 
50
+ ### 更新履歴
51
+
52
+ - 2018/04/05 23:55 outerArray.length - innerArray > 1 の時にnullが代入される不具合を修正
53
+
44
54
  Re: hanasan さん

1

> jqueryでn文字目の正規表現

2018/04/05 14:56

投稿

think49
think49

スコア18194

answer CHANGED
@@ -1,3 +1,9 @@
1
+ ### jQuery
2
+
3
+ > jqueryでn文字目の正規表現
4
+
5
+ 配列、文字列操作はjQueryの得意分野ではないので、jQueryを使っても楽に書けないと思います。
6
+
1
7
  ### コード
2
8
 
3
9
  汎用性重視で制御構文でループ。