我在找到在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.它永远不会取代第二个a在batman.我查了一下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()当给定字符串时,始终替换找到的第一个实例.
| 归档时间: |
|
| 查看次数: |
762 次 |
| 最近记录: |