2017-10-08 105 views
-1
var e1, e2, e3, e4, e5, e6, e7, str; 

function capFirstLetter(str){ 
    return str.substr(0,1).toUpperCase() + str.substr(1).toLowerCase(); 
} 

e1 = prompt("Enter first name", "john"); 
e1 = capFirstLetter(e1); 

e3 = prompt("Enter the college name you are attending to", "seneca college"); 
e3 = e3.split(" "); 
var example2 = " "; 
for(var i=0; i<e3.length; i++){ 
    example2 += capFirstLetter(e3[i]) + e3[i].substr(1,e3[i].length-1) + " "; 
} 
console.log(example2); 

所以这就是我的代码。 e3将使用名为capFirstLetter的函数,它将转换大写的每个单词的每个首字母。字符串输出混合相同的字符两次

但是,此代码输出的是“Burnhamurnham Collegeollege”。

而不是输出“伯纳姆学院”。所以,它输出额外的字母“urnham”和“ollege”,所以我猜测它没有第一个字母就再输出一次。任何人都知道如何解决此问题?

+1

删除空格取出'+ str.substr(1).toLowerCase()'或'+ E3 [I] .substr(1,E3 [I]。长度-1)' – ASDFGerte

+0

它创造了额外的1缩进,所以它的输出/ t伯纳姆学院,任何猜测为什么? –

+0

@Jondoe这解决了吗? – aaron

回答

0

因此,它输出单词urnham和ollege的额外字母,所以即时猜测它的输出一次没有第一​​个字母。任何人都知道如何解决此问题?

删除e3[i].substr(1,e3[i].length-1)example2 += capFirstLetter(e3[i]) + " ";

其建立额外的1个缩进,所以其输出/吨伯纳姆学院,任何猜测为什么?

var example2 = " ";