1

我的 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 />")

我该如何解决这个问题?谢谢。

4

1 回答 1

1

查看文档:

有时,函数以循环结束,这些循环仅出于副作用而运行。请注意,在这些情况下,您不会通过在函数底部添加有意义的返回值(如true- 或,)意外返回推导结果。null

要“修复”您的代码,只需return在函数末尾添加一条语句。

于 2013-10-21T02:35:42.573 回答