为什么是undefined?

h123hu 2015-08-14 10:21:36

function umnAnim(){
var uArr={};
for(var i=0;i<3;i++){
uArr[i]=setInterval(function(){
console.log(uArr[i]+','+'132');//这里显示undefined
clearInterval(uArr[i]);
},30);
}
}


求解,要怎么样才能获取到?谢谢了
...全文
126 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
hello_逗比 2015-08-31
  • 打赏
  • 举报
回复
引用 3 楼 h123hu 的回复:
[quote=引用 1 楼 cdm00 的回复:] uArr有 属性 0 , 1 , 2 ,console.log(uArr[i]) 中 i=3 所以undefined
谢谢哈,下标为0.1.2的时候,也是undefined[/quote] 这是对象,0.1.2是属性
h123hu 2015-08-14
  • 打赏
  • 举报
回复
引用 1 楼 cdm00 的回复:
uArr有 属性 0 , 1 , 2 ,console.log(uArr[i]) 中 i=3 所以undefined
谢谢哈,下标为0.1.2的时候,也是undefined
danwei 2015-08-14
  • 打赏
  • 举报
回复
客户端代码?node.js?
hello_逗比 2015-08-14
  • 打赏
  • 举报
回复
uArr有 属性 0 , 1 , 2 ,console.log(uArr[i]) 中 i=3 所以undefined
天际的海浪 2015-08-14
  • 打赏
  • 举报
回复
引用 3 楼 h123hu 的回复:
[quote=引用 1 楼 cdm00 的回复:] uArr有 属性 0 , 1 , 2 ,console.log(uArr[i]) 中 i=3 所以undefined
谢谢哈,下标为0.1.2的时候,也是undefined[/quote] 你定时器执行的时候循环早就结束了,循环变量i下标已经是3了 可以用闭包来保存每次循环的i的值
vblj 2015-08-14
  • 打赏
  • 举报
回复
那是因为你的uArr里面的空的,uArr[0],uArr[1],uArr[2]根本就不存在,你要给它赋值而且你是要数组吧,function umnAnim(){ var uArr=[]; for(var i=0;i<3;i++){ uArr[i] =i; console.log(uArr[i]) uArr[i]=setInterval(function(){ console.log(uArr[i]+','+'132');//这里显示undefined clearInterval(uArr[i]); },1000); } }

87,907

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧