javascript中的for in问题

向子龙 2019-06-20 09:14:23
for in怎么从数组的中间输出啊,求各位大神有空的给小白我讲解一下吧。 var a["今天","明天","后天"]; var i=1; for(i in a ){ document.write(a(i)); } 希望输出的结果是:明天后天,但结果是把数组的全都输出了:今天明天后天 前面定义的i=1没起作用。怎样让他起作用呢
...全文
135 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
向子龙 2019-06-21
  • 打赏
  • 举报
回复
虽然现在还看不懂,但是还是觉得你很厉害
cn00439805 2019-06-21
  • 打赏
  • 举报
回复

console.log(a.slice(Math.floor((a.length-1)/2),a.length).join(","))
向子龙 2019-06-21
  • 打赏
  • 举报
回复
呀,确实,幸亏仁兄你提醒,这个还真是我疏忽了
河南棒小伙 2019-06-20
  • 打赏
  • 举报
回复
里面的a(i)都换成[i],b(i)=>b[i],上面的仁兄说的对,最好用于对象,MDN上讲for...in不推荐用于Array,但不表示不能用,只是不能保证顺序,
向子龙 2019-06-20
  • 打赏
  • 举报
回复
还有这种操作,长见识了,厉害,厉害,大神好多!开心~
河南棒小伙 2019-06-20
  • 打赏
  • 举报
回复
你上面写的i虽然定义了i=1,但是运行for....in的时候i会被重新赋值. 非要用for...in吗?简单方法:里面加条件:

var a["今天","明天","后天"];
for(let i in a ){
if(i>0){
document.write(a(i));
}
}
或者

var a["今天","明天","后天"];
for(let i in b=a.slice(1) ){
document.write(b(i));
}
向子龙 2019-06-20
  • 打赏
  • 举报
回复
哦哦,原来是这么回事~谢谢大神了哈
天际的海浪 2019-06-20
  • 打赏
  • 举报
回复
for in 只能全部遍历对象的所有属性。 你要从数组的中间输出还是应该用 for (var i = 1; i < a.length; i++)

87,990

社区成员

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

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