【问题标题】:for loops in coffee script咖啡脚本中的 for 循环
【发布时间】:2013-03-06 09:55:25
【问题描述】:

我目前正在尝试使用 CoffeeScript,方法是转换我为查询 Instagram 而构建的原生 JavaScript 提要解析器。我一直在碰壁,试图让逻辑在 for 循环中工作,我可以让一个简单的 for 循环按照网络上的 100 个示例工作,但我还没有得到一个for 循环中的更多代码。我接近这个完全错误吗?我传递给函数的参数“结果”是一个 JSON 对象。

_feed: (results) ->
    images = results.length
    for img in images
      a = document.createElement('a');
      a.href = results.data[i].images.standard_resolution.url;
      img = document.createElement("img");
      img.src = results.data[i].images.low_resolution.url;
      a.appendChild(img);
      document.getElementsByTagName('body')[0].appendChild(a);

我不断收到错误消息说意外的缩进。有什么建议吗?

【问题讨论】:

    标签: javascript json coffeescript


    【解决方案1】:

    我会尝试这样的事情:

    _feed: (results) ->
        for result in results.data
            a = document.createElement 'a'
            a.href = result.images.standard_resolution.url
    
            img = document.createElement 'img'
            img.src = result.images.low_resolution.url
    
            a.appendChild img
            document.body.appendChild a
    

    主要区别在于for 循环遍历results.data 中的每个项目。您的循环中仍然有 results.data[i],如果您逐项迭代,这并不是必需的。

    【讨论】:

    • 如果results.data是一个对象,不应该是for..of吗?
    • @elclanrs:results.data 不是数组吗?我还以为是数组呢。
    • 非常感谢。我确实说一个对象是的,但该代码有效 - 应该吗?另外,为什么如果我删除 for 循环下面的所有代码,它会在编译时给我一个错误?显然我想要下面的代码,但我只是想了解发生了什么。干杯
    • @JamesBillings:在online CS compiler 中尝试一下。 CS 中的 for...in 循环是遍历数组的方式,但 for...of 循环类似于普通 JavaScript 中的 for...in
    【解决方案2】:

    确保您使用的编辑器使用软制表符(空格)而不是硬制表符;并检查所有行是否按预期缩进:前两行两个空格,其他行四个空格;等等。否则,你肯定会得到那些混合制表符和空格的错误。

    我还看到您的代码末尾有一个随机反引号;是在实际代码中还是您只是在此处复制它?

    另外,开始忽略分号;你不需要它们:)

    【讨论】:

      猜你喜欢
      • 2012-06-14
      • 2012-06-18
      • 2019-02-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多