Javascript-字符串大小写函数抛出奇怪错误

Javascript-字符串大小写函数抛出奇怪错误,javascript,string,Javascript,String,斯塔克尔斯,请帮助我疲惫的初学者的大脑,让我知道我在哪里搞错了 我的函数接受小写字符串作为其唯一参数。它应该返回相同的字符串,每个单词的大写字母中包含所有偶数索引字符。但实际输出与我的预期输出不同 例如: console.log(Towerdcase('harry喜欢读书')) //预期输出:“哈里喜欢读书” //实际输出:“哈里喜欢读书” 控制台日志(TowerdCase('gooooogle搜索无效'); //预期输出:“Goooogle搜索无效” //实际输出:Goooogle搜索无效

斯塔克尔斯,请帮助我疲惫的初学者的大脑,让我知道我在哪里搞错了

我的函数接受小写字符串作为其唯一参数。它应该返回相同的字符串,每个单词的大写字母中包含所有偶数索引字符。但实际输出与我的预期输出不同

例如:

console.log(Towerdcase('harry喜欢读书'))
//预期输出:“哈里喜欢读书”
//实际输出:“哈里喜欢读书”
控制台日志(TowerdCase('gooooogle搜索无效');
//预期输出:“Goooogle搜索无效”
//实际输出:Goooogle搜索无效
函数大小写(字符串){
string=string.split(“”);
for(设i=0;i}
当您使用
索引of
查找字符时,您将获得第一次出现的索引,而不一定是您最初看到的索引。类似地,
replace
(当给定一个字符串值作为第一个参数时)将替换第一次出现的内容,而不一定是您感兴趣的内容

以下是一个修复方案,不需要对原始版本做太多更改:

函数类型(字符串){
string=string.split(“”);

对于(i=0;i当您使用
indexOf
查找字符时,您将获得第一个匹配项的索引,而不一定是您最初查看的索引。类似地,
replace
(当给定字符串值作为第一个参数时)将替换第一个匹配项,而不一定是您感兴趣的匹配项

以下是一个修复方案,不需要对原始版本做太多更改:

函数类型(字符串){
string=string.split(“”);

对于(设i=0;i基本上,当您连续使用相同的字符时,您的代码有一个问题。前面两个答案已经正确地解释了这些问题

函数类型(字符串){
string=string.split(“”);
让结果=[];

对于(设i=0;i基本上,当您连续使用相同的字符时,您的代码有一个问题。前面两个答案已经正确地解释了这些问题

函数类型(字符串){
string=string.split(“”);
让结果=[];

对于(让我=0;iTrue…我没有完全注意到..是的,在这种情况下,两个循环是必要的,一个循环覆盖单词,另一个循环覆盖每个单词的字符。更新了我的答案,至少匹配OP的逻辑..不是最漂亮的,但它可以工作。感谢@trincot的评论..更喜欢你的替代解决方案。是的..我没有完全注意到..是的,在这种情况下,需要两个循环,一个循环在单词上,另一个循环在每个单词的字符上。更新我的答案,使其至少符合OP的逻辑。虽然不是最漂亮的,但它可以工作。感谢@trincot的评论。更喜欢你的替代解决方案。有任何答案适合你的需要吗?你能给出一些反馈或接受答案吗?请回答有哪一个答案适合你的需要?你能给出一些反馈或接受答案吗?