2017-11-22 4 views
0

私はJSでこれを達成するための適切な方法を見つけるのに問題があります。 i番目の文字だけを削除している間、文字列の各文字を繰り返し処理したい(すべての小文字を仮定)。javascriptのインデックスに基づいて1文字を削除するには?

私は、文字列abcを持っているのであれば、私はそれを3回反復し、それが印刷されます:

'bc' //0th element is removed 
'ac' //1st element is removed 
'ab' //2nd element is removed 

を私はreplaceでそれを行うことができると思ったが、それは、複数の同じ文字を持つ文字列では動作しませんでした。私はstr[i]aあるstr.replace(str[i], '');とき、それはaの最初のインスタンスに置き換えられますので、これは動作しませんでした実現

str = 'batman'; 

for(var i = 0; i < str.length; i++){ 
    var minusOneStr = str.replace(str[i], ''); 
    console.log(minusOneStr); 
} 

"atman" 
"btman" 
"baman" 
"batan" 
"btman" //need it to be batmn 
"batma" 

:このような

何か。 batmanの2番目のaを置き換えることはありません。私はsubstringsplicesliceの方法をチェックしましたが、目的に合っていません。

どうすればこの問題を解決できますか?

答えて

5

.replace()の代わりに、現在のインデックスの前後にある文字列のスライスを連結するだけです。

var str = 'batman'; 
 

 
for (var i = 0; i < str.length; i++) { 
 
    var minusOneStr = str.slice(0, i) + str.slice(i + 1); 
 
    console.log(minusOneStr); 
 
}

文字列が与えられたとき、常に最初に見つかったインスタンスを置き換え、.replace()、あなたが述べたように、これはあります。

関連する問題