Javascript 切换同一单词中的元音
如何将字符串中的元音切换到第一个元音与最后一个元音切换,第二个元音与第二个元音切换,以此类推?我尝试分割输入字符串并尝试嵌入for循环,但我似乎不知道该从那里开始Javascript 切换同一单词中的元音,javascript,algorithm,Javascript,Algorithm,如何将字符串中的元音切换到第一个元音与最后一个元音切换,第二个元音与第二个元音切换,以此类推?我尝试分割输入字符串并尝试嵌入for循环,但我似乎不知道该从那里开始 function reverseVowels(input) { let vowels = ['a','e','i','o','u'] let newArr = input.split('') let result = []; for (i = 0; i < newArr.length; i++){ for
function reverseVowels(input) {
let vowels = ['a','e','i','o','u']
let newArr = input.split('')
let result = [];
for (i = 0; i < newArr.length; i++){
for (j = 0; j < newArr.length; j++)
if (newArr[i] === vowels[i] && newArr[j] === vowels[i]) {
newArr[i] = newArr[j]
}
}
return result;
}
功能反转窗口(输入){
让元音=['a','e','i','o','u']
设newArr=input.split(“”)
让结果=[];
对于(i=0;i
提前谢谢你我会让一名跑步者从两端开始。所以
left
将从索引0
开始,然后增加,直到它碰到一个元音(或字符串的末尾,但我会让您处理边缘大小写)。一旦发生这种情况,使用一个跑者右
从结尾开始,然后逐渐减少,直到碰到一个元音为止。交换它们并重复,直到指针交叉。我会从每一端开始跑步。所以left
将从索引0
开始,然后增加,直到它碰到一个元音(或字符串的末尾,但我会让您处理边缘大小写)。一旦发生这种情况,使用一个跑者右
从结尾开始,然后逐渐减少,直到碰到一个元音为止。交换它们并重复,直到指针交叉。我能想到的最简单的解决方案是做一种就地反转,跳过任何不是元音的字符:
功能反转窗口(输入){
常量元音=新集合(['a'、'e'、'i'、'o'、'u']);
const result=input.split(“”)
常量元音deces=结果.减少((acc,char,i)=>{
if(元音has(char)){
acc.push(i);
}
返回acc;
}, []);
设i=0;
设j=元音长度-1;
而(j>i){
const ref=结果[元音符号[i];
结果[元音词[i]]=结果[元音词[j]];
结果[j]]=ref;
j--;
i++;
}
返回结果;
}
我能想到的最简单的解决方案是做一种就地反转,跳过任何非元音的字符:
功能反转窗口(输入){
常量元音=新集合(['a'、'e'、'i'、'o'、'u']);
const result=input.split(“”)
常量元音deces=结果.减少((acc,char,i)=>{
if(元音has(char)){
acc.push(i);
}
返回acc;
}, []);
设i=0;
设j=元音长度-1;
而(j>i){
const ref=结果[元音符号[i];
结果[元音词[i]]=结果[元音词[j]];
结果[j]]=ref;
j--;
i++;
}
返回结果;
}
获取输入的所有元音,然后将其反转。最后,将原数组元音替换为过滤后的元音
功能反转窗口(输入){
常量元音=['a','e','i','o','u'];
常数a=输入
.拆分(“”)
.filter((x)=>元音。包括(x))
.reverse();
让计数=0;
返回[…输入].map((x)=>(元音。包括(x)?a[count++]:x)).join(“”);
}
console.log(reversevowles('ahije'));
console.log(reversevowles('axeyuzi'))代码>获取输入的所有元音,然后将其反转。最后,将原数组元音替换为过滤后的元音
功能反转窗口(输入){
常量元音=['a','e','i','o','u'];
常数a=输入
.拆分(“”)
.filter((x)=>元音。包括(x))
.reverse();
让计数=0;
返回[…输入].map((x)=>(元音。包括(x)?a[count++]:x)).join(“”);
}
console.log(reversevowles('ahije'));
console.log(reversevowles('axeyuzi'))代码>你的循环没有意义,你两次都是从前面循环。您还只是检查元音是否与字符串数组中的元音相同。你可以展示一些输入和输出的例子吗?你的循环毫无意义,你两次都是从前面循环。您还只是检查元音是否与字符串数组中的元音相同。您应该从字符串的两侧使用和循环。您可以展示几个输入和输出示例吗?