2013-05-30 490 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

對不起,我是新來的編碼,並沒有意識到這個景象被用於什麼。應該做更多的工作來爲自己弄明白這一點。謝謝你們所有的好回答。 –