titleCasing没有回答正确答案

时间:2013-05-30 03:22:30

标签: javascript

我正在尝试返回字符串“Brian Wade Stacks”, 这是代码:

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

2 个答案:

答案 0 :(得分:1)

你没有打电话给fixName;你需要那样做。

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

答案 1 :(得分:0)

未使用变量 partsOfName ,为什么要创建它?此外, part1 part2 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