2016-12-08 31 views
-2

我一直在Udacity上進行JS測驗。JavaScript日誌返回所需的字符串,但提交失敗

一個由任意大小寫的混合格式化的兩個單詞名稱的字符串,你可以操縱字符串以確保名字有第一個大寫字母並且姓氏全部大寫?假設名稱之間有空格。例如,將「cAmEROn PittMAN」這樣的字符串變成「Cameron PITTMAN」。您的答案應該是保存到名爲finalName的變量的單個字符串。

這裏是我的輸入代碼:

var name = "AlbERt EINstEiN"; 
function nameChanger(oldName) { 
    var finalName = oldName; 
    // Your code goes here! 
var firstName = name.slice(0,7); 
var firstNameA = firstName.charAt(0); 
firstNameA = firstNameA.toUpperCase(); 
firstName = firstName.toLowerCase(); 
firstName = firstName.substr(1); 
var lastName = name.slice(7); 
lastName = lastName.toUpperCase(); 
finalName = firstNameA + firstName + lastName; 
// Don't delete this line! 
    return finalName; 
} 

// Did your code work? The line below will tell you! 
console.log(nameChanger(name)); 

控制檯回報:

08 12 2016 09:54:08.533: 無限併發 08 12 2016 09:54: 08.764: 對數:'Albert EINSTEIN'

我知道我的並不是最優化的代碼,但是因爲它返回了所需的字符串,所以在提交時它應該是正確的。然而,我只有這樣:

- >測試:nameChanger應該返回國際化名稱。返回正確的名稱:失敗 預計'阿爾伯特愛因斯坦'等於'傑夫諾曼'

我的代碼有什麼問題嗎?

+0

這顯然與某種測試中,我們沒有使用的可能性。既然這當然了,也許你應該通過正確的渠道去問課程教師呢? –

+0

因爲你在函數內部使用硬編碼的'name'變量,所以當你很可能使用傳入的參數'oldName'時 –

回答

0

嘗試類似的評論這個解釋代碼:

  1. 分裂姓氏和名字
  2. 獲得頭名的第一個字母大寫,並加用小寫剩餘的頭名
  3. 添加第二個名字被利用

function nameChanger(oldName) { 
 
//your code starts here in your case you need to return out variable 
 
var d = oldName.split(" ") // this will return you array of two strings 
 
var out = d[0][0].toUpperCase() //take the first string first letter capitalize 
 
out += d[0].substr(1).toLowerCase() + " " //add the remaining firstname by lowercase substr will give you sub string from 1 index 
 
out+= d[1].toUpperCase(); //add the second name by upper case 
 

 
return out; 
 
} 
 

 
console.log(nameChanger("AlbeRt Eienstien"))

0

您需要使用一個參數作爲已經提到的其他評論者。
我沒有改變你的代碼非常多,順便說一句。

注意:你想問問題,幫助更多人,而不僅僅是一個答案的測驗。 :-)

祝你有美好的一天 - 希望你喜歡學習代碼。


看看這是否有幫助。

function nameChanger(oldName) { 
 
    var finalName = oldName; 
 
    // Your code goes here! 
 
    var firstName = oldName.split(' ')[0]; 
 
    var firstNameA = firstName.charAt(0); 
 
    firstNameA = firstNameA.toUpperCase(); 
 
    firstName = firstName.toLowerCase(); 
 
    firstName = firstName.substr(1); 
 
    var lastName = oldName.split(' ')[1]; 
 
    lastName = lastName.toUpperCase(); 
 
    finalName = firstNameA + firstName + ' ' + lastName; 
 
    
 
    // Don't delete this line! 
 
    return finalName; 
 
} 
 

 
// Did your code work? The line below will tell you! 
 
console.log(nameChanger('geOff NoRmAn'));

1

您可以使用下面的代碼來實現輸出。

var name = "cAmEROn PittMAN"; 
var names = name.split(" "); 
var finalname = names[0].toString().substring(0, 1).toUpperCase() + names[0].toString().substring(1,names[0].length).toLowerCase() + " " + names[1].toString().toUpperCase(); 
console.log(finalname); 

這裏finalname返回「卡梅倫PITTMAN」 採用分而不是切片,它會在一個數組的形式返回這兩個詞和您可以根據需要操縱數據。

0

我認爲這將有助於在未來:

var name = "AlbERt EINstEiN"; 

function nameChanger(oldName) { 
    var finalName = oldName; 
// Your code goes here! 
    var names = oldName.split(" "); //Split the string in an array of 2 elements, using the space (" ") as separator. 
    names[0] = names[0].slice(0,1).toUpperCase() + names[0].slice(1).toLowerCase(); //Converts first letter into UpperCase + rest of firstname to LowerCase. 
    names[1] = names[1].toUpperCase(); //Converts lastname to UpperCase. 

    finalName = names.join(" "); //Joins both names into a string separated by a space. 

// Don't delete this line! 
    return finalName; 
}; 

// Did your code work? The line below will tell you! 
console.log(nameChanger(name)); 
相關問題