2016-08-09 6 views
-1

をループし、:Javascriptを:のような文字列で繰り返される文字のインデックスがない私は、文字列中の繰り返し文字のすべてのインデックスを取得する方法を疑問に思って

「バハマからバナナ」

私がしたいです"a"のすべてのインデックスを取得します。 str.indexOf( "a")を実行すると、文字列にある最初の "a"しか取得されません。

私はその文字のインデックスをチェックしようとするたびに、私は私が望む1

を得る:

str.indexOf("a") === 1 
str.indexOf("a") === 3 
str.indexOf("a") === 5 
str.indexOf("a") === 14 
str.indexOf("a") === 16 
str.indexOf("a") === 18 

は編集:私は、ループを使用して控えるしようとします。私はループなしでこれを行うことができるソリューションはありますか?あなたは、文字列を反復処理し、指標のことは自分を追跡することができ、事前

+0

は、あなたが任意の[ '.indexOf()' DOCO](HTTPSを読みました.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/String/indexOf)?この関数はオプションの2番目の引数をとります... – nnnnnn

+0

マップを使って次のことができます: 'str.split(" ")map(function(ch、idx){if(ch === 'a'){indx.push( idx);}}); ' –

答えて

0

THX://開発者:

var indices= [], 
     i; 

for(i = 0; i < str.length; i++) { 
    if (str[i] === 'a') { 
    indices.push(i); 
    } 
} 
関連する問題