【问题标题】:How to remove one character based on index in javascript? [duplicate]如何根据javascript中的索引删除一个字符? [复制]
【发布时间】:2018-05-06 15:40:39
【问题描述】:

我无法在 JS 中找到合适的方法来完成此任务。我想遍历字符串的每个字符(假设全部小写),同时仅删除 ith 字符。

所以如果我有字符串abc,我会迭代它3次,它会打印出来:

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

我以为我可以使用 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" 

我意识到这不起作用,因为str.replace(str[i], '');str[i]a 时,它将替换a 的第一个实例。它永远不会替换batman 中的第二个a。我检查了substringspliceslice 方法,但没有一个适合 mf 目的。

我怎样才能做到这一点?

【问题讨论】:

    标签: javascript string


    【解决方案1】:

    您只需在当前索引之前和之后连接字符串的切片,而不是使用 .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() 在给定字符串时,总是替换找到的第一个实例。

    【讨论】:

      猜你喜欢
      • 2021-08-30
      • 1970-01-01
      • 2019-09-17
      • 1970-01-01
      • 2015-07-19
      • 2019-12-02
      • 1970-01-01
      • 2013-10-27
      • 1970-01-01
      相关资源
      最近更新 更多