2013-05-30 296 views
-1

我想返回字符串“布莱恩·韦德栈”, 下面的代码:titleCasing没有返回正确的答案

var fixName = function(myName) { 

    var partsOfName = [ 
    part1 = myName.substring(0, 5), 
    part2 = myName.substring(5, 8), 
    part3 = myName.substring(9, myName.length) 
    ]; 

    part1 = part1.charAt(0).toUpperCase() + part1.slice(1); 
    part2 = part2.charAt(5).toUpperCase() + part2.slice(1); 
    part3 = part3.charAt(9).toUpperCase() + part3.slice(1); 

    return(part1+" "+part2+" "+part3); 
} 


var myName= "brianwadestacks" 
console.log("My name fixed is " + myName); 

它返回我的名字定为brianwadestacks

+0

您已经定义了一个函数,但没有在任何地方调用它。你也有一个语法错误(在'myName'之后加''''''''''''''''''''''''') – meagar

+0

@meagar谢谢! –

+0

所以不是调用myName,而是调用fixName? –

回答

1

你是不是要求fixName;你需要这样做。

console.log("My name fixed is " + fixName(myName)); 
+0

你完全正确了谢谢你的信息 –

0

可变partsOfName不使用,那么为什么创建它? part1part2 and part3在函数运行后因为未声明而创建为全局变量。 part2的子字符串应该扩展到索引9(它实际上在指定索引之前立即停止)。从索引到结尾进行选择时,可以省略结束索引。试想一下:

var part1 = myName.substring(0, 5); 
var part2 = myName.substring(5, 9); 
var part3 = myName.substring(9); 

在您的代码:

> part1 = part1.charAt(0).toUpperCase() + part1.slice(1); 
> part2 = part2.charAt(5).toUpperCase() + part2.slice(1); 
> part3 = part3.charAt(9).toUpperCase() + part3.slice(1); 

字符指标都应该是零,因为要大写第一个字符,所以:

part1 = part1.charAt(0).toUpperCase() + part1.slice(1); 
part2 = part2.charAt(0).toUpperCase() + part2.slice(1); 
part3 = part3.charAt(0).toUpperCase() + part3.slice(1); 

最后,不要使用函数表达式,其中声明是指示,有细微的差异,将赶上你:

function fixName(myName) { 

    var part1 = myName.substring(0, 5); 
    var part2 = myName.substring(5, 9); 
    var part3 = myName.substring(9); 

    part1 = part1.charAt(0).toUpperCase() + part1.slice(1); 
    part2 = part2.charAt(0).toUpperCase() + part2.slice(1); 
    part3 = part3.charAt(0).toUpperCase() + part3.slice(1); 

    return(part1+" "+part2+" "+part3); 
} 

var myName= "brianwadestacks"; 
console.log("My name fixed is " + fixName(myName)); // My name fixed is Brian Wade Stacks 
+0

对不起,我是新来的编码,并没有意识到这个景象被用于什么。应该做更多的工作来为自己弄明白这一点。谢谢你们所有的好回答。 –