回答編集履歴
1
問題の発生原因を追記
answer
CHANGED
@@ -1,8 +1,17 @@
|
|
1
|
-
|
1
|
+
- 「文字列HelloWorld」から「HelloWorld」を見つける
|
2
|
-
|
2
|
+
- 見つかった「HelloWorld」のそれぞれの文字が、「文字列HelloWorld」の何文字目にあるか表示する(「HelloWorld」の順番通り)
|
3
3
|
|
4
4
|
ということをしたいのだと想定して回答いたします。
|
5
5
|
|
6
|
+
重複している文字の番号が一緒になってしまう原因としては、indexOfメソッドが、一番左の文字から一文字ずつ順番に見て行って、「一番最初に見つかった場所の番号(インデックス)を返す」からです。
|
7
|
+
"Hello World"の中に、"l"は2つあって、1つ目は3文字目、2つ目は4文字目ですが、indexOfメソッドでは一番最初の"l"の場所が返ってくるので、何度実行しても結果は変わらないわけですね。
|
8
|
+
|
9
|
+
今回は、
|
10
|
+
- まず「HelloWorld」という文字列が含まれる場所を探す
|
11
|
+
- その最初の文字の番号に1ずつ足していけば、全ての文字の番号が分かる
|
12
|
+
|
13
|
+
ことを利用して作ってみました。
|
14
|
+
|
6
15
|
```Javascript
|
7
16
|
let string = "文字列HelloWorld";
|
8
17
|
let pattern = "HelloWorld";
|