2016-11-27 24 views
2

我正在介紹JavaScript類,並且卡在作業上。使用Javascript函數輸出帶換行符的字符串以創建一個直角三角形

編寫一個名爲drawTriangle的函數,返回以下字符串。請隨意使用console.log進行調試打印,但要確保函數實際返回一個字符串。

請注意,在一個字符串中,回車字符(相當於「Enter」或「Return」鍵)爲「\ n」。

# 
## 
### 
#### 
##### 
###### 
####### 

我最初的想法是,我會用一個循環來填充數組(與尋找一種方法來輸出數組作爲與線斷線的希望),但我停留在這一點上並沒有把握如何前進(或者如果我走錯了方向)。

我當前的腳本如下:

function triangle(number) { 
    var triElements = []; 
    var pound = '#'; 
    var rightTriangle = ''; 
    var lineBreak = '\n'; 
    for (var i = 0; i < number; i++) { 
     var rightTriangle = rightTriangle.concat(pound) 
     triElements.push(rightTriangle); 
    } 
    return triElements; 
} 

console.log(triangle(6)) 
+0

問題是..?我懷疑這實際上會是好事,用換行符返回一個字符串,而不是一串字符串。有一種叫做'Array.join'的方法可以在這裏幫助。 – user2864740

回答

1

使用triElements.join("\n");在return語句

+0

太棒了。有效。非常感謝! – aguadamuz

+0

謝謝,正如@Niels所說,你也可以獲得數組的支持。 –

2

您正在返回一個數組,而不是在一個字符串的三角形。我想你已經在想這個問題了,通過使用一個數組來存儲結果,只需使用如下例所示的字符串:

function triangle(numOfLayers) { 
    var result = ''; 
    var symbol = '#'; 
    var layer = ''; 
    var lineBreak = '\n'; 
    for (var i = 0; i < numOfLayers; i++) { 
     layer += symbol; // add one symbol to last layer 
     result += layer + lineBreak; // append an extra line to the result 
    } 
    return result; 
} 

console.log(triangle(6)) 
+0

啊...我明白了。這對我來說是一個驚人的學習課程。非常感謝。 – aguadamuz