美元.如果一个json节点只有一个子节点,那么每个not都在该节点上起作用.Coffeescript

Does $.each not function on a json node if the node has only one child. Coffeescript

本文关键字:节点 not Coffeescript 起作用 子节点 如果 一个 json 美元 有一个      更新时间:2023-09-26

所以我试图通过json对象迭代,但我不知道它是否会有一个孩子或许多。我正在使用$。每个 jquery函数与咖啡脚本如下:

$.each data.searchresults.response.results.result, (i) ->
  count = i + 1
  console.log data.searchresults.response.result.address.street

如果"result"节点有两个实例,则此操作有效;然而,当它只有一个实例时,它不起作用。我的问题是,我写的是$吗。我是否应该检查存在多少个结果节点,然后决定是循环还是直接访问该节点?

JSON With Two: http://www.zillow.com/webservice/GetSearchResults.htm?zws-id=X1-ZWz1dj9f5y35l7_agge7&address=3925%20edwardsville%20galena%20road&citystatezip=47122

JSON with One: http://www.zillow.com/webservice/GetSearchResults.htm?zws-id=X1-ZWz1dj9f5y35l7_agge7&address=206%20Plum%20lake%20drive&citystatezip=47172

运行多个结果节点时没有错误,但只有一个结果节点时错误如下:

TypeError: 'undefined'不是对象(求值'data.searchresults.response.results.result[i].address.street')

所以我遇到的问题(我知道很愚蠢)是,在。each函数中,我使用了完整的对象路径[I]来访问对象的正确迭代。

所以我们不用console.log data.searchresults.response.result[i].address.street

我把脚本调整成这样:

$.each data.searchresults.response.results.result, (i,result) ->
  count = i + 1
  console.log result.address.street