出于某种原因,我试图删除字符串中的每个第三个字符,当我尝试该函数时,它会返回未更改的消息
输入:猫 预计: 加州 输出:猫
let counter = 0
function decrypt(message)
{
for(let i = 0; i < message. Length; i++){
counter ++
if(counter == 3){
message[i] = ''
}
}
return message
}
这里的问题是 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 我们只是跳过第三个字符 最后,我们返回结果字符串。