2017-07-17 84 views
0

我正在做Udacity JavaScript研究,現在有一個測驗困擾我。我知道如何用紅寶石很容易地做到這一點,但這一個正在殺死我。Javascript循環返回字符串x次

我需要調用函數並返回「ha」num次並添加「!」在循環的最後。

我試過這個,但它沒有幫助。應該很簡單。

function laugh(num) { 
    for (var x = 0; num; x ++) { 
     return 'ha'; 
    } 
} 

console.log(laugh(3)); 
+1

函數返回一次。 – davidxxx

+3

我懷疑這個問題的措辭是這樣的,你可能不想回3次哈,你可能想返回一個有3公頃的字符串。像「哈哈哈!」。應該有一個回報。 –

+0

'return'立即返回。 IOW,通過循環的第一次傳遞返回,並且下一次傳球永遠不會發生。顯然,這不是你想要的。 –

回答

1

您只能從return一次功能。嘗試在循環中構建所需的字符串,然後在循環完成後返回值。

(注意:您可以在一個功能多return語句,但只要你打他們的一個函數執行完畢)

3

其實你甚至不需要循環。

const laugh = num => 'ha'.repeat(num) + '!'; 
 

 
console.log(laugh(3)); 
 
console.log(laugh(5));

+0

是的,我現在用.repeat(num)沒有循環,但Udacity給你一個使用循環的小費。 –

+0

@ОлегЯкунин這只是一個提示,而不是必需的條件。 –

0

function laugh(num) { 
 
    var outString = ''; 
 
    for (var x = 0; x<num; x ++) { 
 
    outString += ' ha'; 
 
    } 
 
    return outString.substring(1) + '!'; 
 
} 
 

 
console.log(laugh(3));

0

在循環返回將返回整體功能。爲了使這個工作,你可以連接循環中的字符串,然後返回連接的輸出。您也錯誤地格式化了循環,當x小於num時,需要告訴循環停止。嘗試:

function laugh(num) { 
 
    var laughString = ''; 
 
    for (var x = 0; x < num; x++) { 
 
    laughString += 'ha'; 
 
    } 
 
    return laughString + '!'; 
 
} 
 

 
console.log(laugh(3));

0
function laugh(input) { 
    var answer = ''; 
    for (var i = 0; i < input; i++) { 
    answer += 'ha'; 
    } 
    return (answer + '!'); 
} 

首先,一個變量設置爲空字符串,(這將是您的答案) 然後,寫一個for循環迴路根據輸入(你做到了這一點) 然後在for循環裏面加'ha'到你的回答字符串 終於在for循環之外(它跑完所有循環後) 返回答案字符串加!