2017-11-29 16 views
2

2番目の関数の最後に「未定義」が表示されますが、その理由はわかりません。あなたが明示的にそれが暗黙のうちにundefinedを返す、関数から値を返さない場合は、ここで は私のコード関数の最後に "Undefined"が返されました

function makeLine(length) { 
    var line = ""; 
    for (var j = 1; j <= length; j++) { 
     line += "* "; 
    } 
    return line + "\n"; 
} 

// your code goes here. Make sure you call makeLine() in your own code. 
function buildTriangle(len){ 
    for(var i=1;i<=len; i++){ 
     console.log(makeLine(i)); 
    } 
} 

// test your code by uncommenting the following line 
console.log(buildTriangle(10)); 
+2

これが戻り値であるためです。 –

+0

@kevinSpaceyIsKeyserSözeどうすればこの問題を解決できますか? –

+0

この関数から別の値を返す –

答えて

1


あなたがundefinedあるbuildTriangleの戻り値を、ログに記録します。ここでコードを修正して結果を返す方法です。

配列を定義し、ループの繰り返しごとにmakeLineの結果を配列にプッシュします。次に、結合された配列を返します。

function buildTriangle(len){ 
    var arr = []; 
    for (var i=1;i<=len; i++){ 
    arr.push(makeLine(i)) 
    } 
    return arr.join(''); 
} 

DEMO

0

最後の行.Thereでコンソールを削除するには、任意の関数を呼び出しますコンソールの必要はありません。

function makeLine(length) { 
    var line = ""; 
    for (var j = 1; j <= length; j++) { 
     line += "* "; 
    } 
    return line + "\n"; 
} 

// your code goes here. Make sure you call makeLine() in your own code. 
function buildTriangle(len){ 
    for(var i=1;i<=len; i++){ 
     console.log(makeLine(i)); 
    } 
} 

// test your code by uncommenting the following line 
buildTriangle(10) 

console.log内で関数を呼び出す場合。その後、buildTriangleの機能を返す。

function buildTriangle(len){ 
    for(var i=1;i<=len; i++){ 
     console.log(makeLine(i)); 
    } 
     return 'done'; 
} 
console.log(buildTriangle(10)); 
関連する問題