如何删除字符串的每第n个字符?

问题描述 投票:0回答:1

出于某种原因,我试图删除字符串中的每个第三个字符,当我尝试该函数时,它会返回未更改的消息

输入:猫 预计: 加州 输出:猫

let counter = 0

function decrypt(message)
{
  for(let i = 0; i < message. Length; i++){
    counter ++
    if(counter == 3){
      message[i] = ''
    }
  }
  return message
}
javascript replace character
1个回答
0
投票

这里的问题是 JavaScript 中的字符串是不可变的,这意味着你不能直接更改它们的字符。此外,使用 message[i] = '' 实际上并不会从字符串中删除该字符。

您可以通过在迭代原始字符串时构造一个新字符串来解决此问题,并省略每三个字符。

这是您的函数的更正版本:


function decrypt(message) {
  let result = '';
  let counter = 0;

  for (let i = 0; i < message.length; i++) {
    counter++;
    if (counter !== 3) {
      result += message[i];
    } else {
      continue;
    }
  }
  
  return result;
}

console.log(decrypt("cat"));  // Output: "ca"
console.log(decrypt("abcdef"));  // Output: "abdef"

在此版本中:

我们初始化一个空字符串结果来构建新字符串。我们 迭代输入消息中的每个字符。我们增加 每个字符加一。如果计数器不等于 3, 我们将字符添加到结果中。如果计数器等于 3 我们只是跳过第三个字符 最后,我们返回结果字符串。

© www.soinside.com 2019 - 2024. All rights reserved.