我正在尝试返回字符串“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
答案 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