如何在javascript中删除一个基于索引的字符?

Igg*_*ggy 0 javascript string

我在找到在JS中完成此操作的正确方法时遇到问题.我想迭代字符串的每个字符(假设所有较低的字符串),同时i只删除字符.

所以,如果我有字符串abc,我将迭代它三次,它将打印:

'bc' //0th element is removed
'ac' //1st element is removed
'ab' //2nd element is removed
Run Code Online (Sandbox Code Playgroud)

我以为我可以用它replace,但它不适用于具有多个相同字符的字符串.

像这样的东西:

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" 
Run Code Online (Sandbox Code Playgroud)

我意识到这并没有工作,因为str.replace(str[i], '');str[i]a,它将替换的第一个实例a.它永远不会取代第二个abatman.我查了一下substring,splice,slice方法,但都不适合MF的目的.

我怎么能做到这一点?

小智 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);
}
Run Code Online (Sandbox Code Playgroud)

这是因为,正如您所指出的,.replace()当给定字符串时,始终替换找到的第一个实例.