Вот еще один интересный способ сделать это
function changeVowels(str) {
var x = {a:'b', e:'f', i:'j', o: 'p', u: 'v', A: 'B', E: 'F', I: 'J', O: 'P', U: 'V'};
return str.split('').map(l => x[l] || l).join('');
}
console.log(changeVowels('Car'))
Или, если вы действительно этого хотите, alphabet
var
function changeVowels(str) {
var alphabet = 'abefijopuvABEFIJOPUV';
var x = Object.fromEntries(alphabet.match(/../g).map(kv => kv.split('')));
return str.split('').map(l => x[l] || l).join('');
}
console.log(changeVowels('Car'))
Объяснение var x = Object.fromEntries(alphabet.match(/../g).map(kv => kv.split('')));
alphabet.match(/../g)
создает массив ['ab', 'ef', 'ij', ... etc]
.map(kv => kv.split(''))
сопоставляет вышеприведенное с [['a', 'b'], ['e', 'f'], ... etc
Object.fromEntries([['a', 'b'], ['e', 'f'] .... etc])
производит
{
a: 'b',
e: 'f',
i: 'j',
o: 'p',
u: 'v',
A: 'B',
E: 'F',
I: 'J',
O: 'P',
U: 'V'
};
так же, как первый фрагмент