Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/473.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如果json节点只有一个子节点,则$each在该节点上不起作用。咖啡脚本_Javascript_Jquery_Coffeescript - Fatal编程技术网

Javascript 如果json节点只有一个子节点,则$each在该节点上不起作用。咖啡脚本

Javascript 如果json节点只有一个子节点,则$each在该节点上不起作用。咖啡脚本,javascript,jquery,coffeescript,Javascript,Jquery,Coffeescript,所以我尝试遍历一个json对象,但我不知道它是有一个子对象还是有多个子对象。我正在使用$。每个jquery函数与coffee脚本如下: $.each data.searchresults.response.results.result, (i) -> count = i + 1 console.log data.searchresults.response.result.address.street 现在,如果“result”节点有两个实例,那么这就可以工作了;但是,当它只有一个

所以我尝试遍历一个json对象,但我不知道它是有一个子对象还是有多个子对象。我正在使用$。每个jquery函数与coffee脚本如下:

$.each data.searchresults.response.results.result, (i) ->
  count = i + 1
  console.log data.searchresults.response.result.address.street
现在,如果“result”节点有两个实例,那么这就可以工作了;但是,当它只有一个实例时,它不工作。我的问题是,我是否以次优的方式编写$。每个函数和/或两个我应该只检查存在多少个结果节点,然后决定循环还是只访问该节点

带有两个
的JSON:

带有一个的JSON:

运行多个结果节点时没有错误,但以下是仅使用一个结果节点运行时的错误:

TypeError:“undefined”不是一个对象(正在评估“data.searchresults.response.results.result[i].address.street”)

所以我遇到的问题(我知道很愚蠢)是在。每个函数我都使用完整的对象路径[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

json节点
听起来有点可疑。这是XML而不是JSON循环对于任何数量的节点/元素都可以正常工作-如果有0,它不会循环,如果有更多,它将循环多少。确保结果的格式相同,因为“$.each”需要一个对象或数组,而您的结果很可能是一个对象数组