首先我要证明句子中是否有元音字母,如果有元音字母替换为下一个字母。不是元音的字母不会被替换,但在输出中保持不变。
我编写的编码结果变得不合适。
function changeVocals(str){
var split = str.split('')
var vocal = 'aiueo'
var change = 'bjvfp'
var a = ''
for (var i = 0; i < split.length; i++) {
for (var j = 0; j < vocal.length; j++) {
if (vocal[j] === split[i]) {
a = a + change
} else {
a = a + split[i]
}
}
}
return a
}
console.log(changeVocals('Alexa')); //'Blfxb'
我希望“Alexa”的输出是“Blfxb”,但实际输出的句子似乎是重复的。
实际输出:AAAAAllllleeeebjvfpexxxxxbjvfpaaaa
最佳答案
您可以使用对象来映射值,并根据大小写替换匹配的值
const mapper = {
a: 'b', e: 'f', i: 'j', o: 'p', u: 'v',
A: 'B', E: 'F', I: 'J', O: 'P', U: 'V'
}
const changeVocals = (string) => {
return string.replace(/[aeiou]/gi, match => mapper[match])
}
console.log(changeVocals('Alexa'));
关于javascript - 只需将元音更改为javascript中的下一个字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57606351/