为了账号安全,请及时绑定邮箱和手机立即绑定

页面console.log为什么获取不到数组长度 ?

页面console.log为什么获取不到数组长度 ?

蝴蝶刀刀 2018-10-18 15:10:03
AJAX获取数据,数据是已经拉下来了,但我在页面使用console.log(date)为什么打印出来的是0,而我直接在控制台使用console.log(date.length)打印出来的是1000。现在我知道是异步的原因造成了,但是如何解决呢,如果我不想设置sync的话?如果我想在下面的dateFilter函数中取得值该怎么写?是直接将filter卸载ajax的success中么?
查看完整描述

1 回答

?
慕的地8271018

TA贡献1796条经验 获得超4个赞

因为ajax是异步请求,当你调用var date=getDate(endpoint);的时候,ajax 请求才发出去,还没有返回结果,succss 的回调函数并没有执行,所以此时cities 还是为空数组,并且被赋值给了date。但是当你打开控制台打印的的时候ajax 已经返回结果并且执行success函数了,此时cities已经被赋值为返回的结果了。并且因为数组是引用类型,citiesdate指向同一个数组。当你通过cities修改了数组,date也引用这个数组,所以你打印date.length 发现date数据变得正常了了。


查看完整回答
反对 回复 2018-11-04
  • 1 回答
  • 0 关注
  • 731 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信