2013-10-21 36 views
1

我的CoffeeScript代碼:爲什麼CoffeeScript中創建一個意想不到的陣列爲我圈

myloop =() -> 
    size = parseInt $('#size').val 

    $('#result').css 'text-align', 'center' 

    for i in [1..size] by 1 
    for j in [1..i] by 1 
     $('#result').append "<img src='alpha.jpg' />" 
    $('#result').append "<br />" 

編譯成JavaScript:

// Generated by CoffeeScript 1.6.3 
(function() { 
    var myloop; 

    myloop = function() { 
    var i, j, size, _i, _j, _results; 
    size = parseInt($('#size').val); 
    $('#result').css('text-align', 'center') 
    _results = []; 
    for (i = _i = 1; _i <= size; i = _i += 1) { 
     for (j = _j = 1; _j <= i; j = _j += 1) { 
     $('#result').append("<img src='alpha.jpg' />"); 
     } 
     _results.push($('#result').append("<br />")); 
    } 
    return _results; 
    }; 

}).call(this); 

正如我期待_result應該不會發生。

應該是$('#result').append("<br />")

我該如何解決這個問題?謝謝。

回答

1

看文檔:

有時功能與僅意在爲他們的副作用運行循環結束。請注意,在這些情況下,您不會意外返回理解結果,只需在函數的底部添加一個有意義的返回值(如truenull)即可。

要「修復」您的代碼,只需在函數結尾處添加return聲明即可。

相關問題