js的for in循环和java里foreach循环的区别分析


Posted in Javascript onJanuary 28, 2015

本文实例分析了js的for in循环和java里foreach循环的区别。分享给大家供大家参考。具体分析如下:

js里的for in循环定义如下:

for(var variable in obj) { ... }

obj可以是一个普通的js对象或者一个数组。如果obj是js对象,那么variable在遍历中得到的是对象的属性的名字,而不是属性对应的值。如果obj是数组,那么variable在遍历中得到的是数组的下标。

遍历对象实验:

var v = {};  

v.field1 = "a";  

v.field2 = "b";  

for(var v in v) {  

    console.log(v);  

}

 
控制台下输出:

field1
field2

遍历数组实验:

var mycars = new Array()

mycars[0] = "Saab"

mycars[1] = "Volvo"

mycars[2] = "BMW"

  

for (var x in mycars){

  console.log(x);

}

 
控制台输出:

0
1
2

拿java的foreach循环来做对比,有两大差别。首先java的foreach循环不会去枚举一个java对象的属性。其次,java的foreach循环枚举一个数组或者任何实现了Iterable接口的对象的时候,for(Object o : list), 对象o得到的是list一个元素,而非在列表中的下标。

java的遍历代码就不贴出来了。经常写后台代码,foreach循环很熟悉。写前台js代码的时候,难免会套用java的语法,所以第一次用js的for in循环的时候犯错了。这次总结清楚,以后就不会犯错误了。

希望本文所述对大家的javascript程序设计有所帮助。

Javascript 相关文章推荐
javascript判断机器是否联网的2种方法
Aug 09 Javascript
javascript中this关键字详解
Dec 12 Javascript
基于vue实现swipe轮播组件实例代码
May 24 Javascript
微信小程序“摇一摇”的实例代码
Jul 20 Javascript
通过fastclick源码分析彻底解决tap“点透”
Dec 24 Javascript
Angular实现的敏感文字自动过滤与提示功能示例
Dec 29 Javascript
全新打包工具parcel零配置vue开发脚手架
Jan 11 Javascript
微信小程序模版渲染详解
Jan 26 Javascript
Vue.js递归组件实现组织架构树和选人功能案例分析
Jul 03 Javascript
使用element-ui的el-menu导航选中后刷新页面保持当前选中状态
Jul 19 Javascript
ElementUI 修改默认样式的几种办法(小结)
Jul 29 Javascript
js实现滚动条自动滚动
Dec 13 Javascript
js鼠标悬浮出现遮罩层的方法
Jan 28 #Javascript
Jquery 实现grid绑定模板
Jan 28 #Javascript
Javascript控制input输入时间格式的方法
Jan 28 #Javascript
js使用Array.prototype.sort()对数组对象排序的方法
Jan 28 #Javascript
js封装可使用的构造函数继承用法分析
Jan 28 #Javascript
js超时调用setTimeout和间歇调用setInterval实例分析
Jan 28 #Javascript
javascript原型链继承用法实例分析
Jan 28 #Javascript
You might like
《DOTA3》开发工作已经开始 《DOTA3》将代替《DOTA2》
2021/03/06 DOTA
PHP如何抛出异常处理错误
2011/03/02 PHP
色色整理的PHP面试题集锦
2012/03/08 PHP
PHP借助phpmailer发送邮件
2015/05/11 PHP
php 字符串中是否包含指定字符串的多种方法
2018/04/12 PHP
Laravel源码解析之路由的使用和示例详解
2018/09/27 PHP
自己开发Dojo的建议框架
2008/09/24 Javascript
网页自动跳转代码收集
2009/09/27 Javascript
jQuery实现类似老虎机滚动抽奖效果
2015/08/06 Javascript
js实现产品缩略图效果
2017/03/10 Javascript
angularJS深拷贝详解
2017/03/23 Javascript
详解基于Angular4+ server render(服务端渲染)开发教程
2017/08/28 Javascript
vue 解决addRoutes动态添加路由后刷新失效问题
2018/07/02 Javascript
Vue组件间通信 Vuex的用法解析
2019/08/05 Javascript
js针对图片加载失败的处理方法分析
2019/08/24 Javascript
JS eval代码快速解密实例解析
2020/04/23 Javascript
[02:28]DOTA2亚洲邀请赛附加赛 RECAP赛事回顾
2015/01/29 DOTA
使用python检测手机QQ在线状态的脚本代码
2013/02/10 Python
python实现socket端口重定向示例
2014/02/10 Python
django自定义Field实现一个字段存储以逗号分隔的字符串
2014/04/27 Python
Python爬虫实战:分析《战狼2》豆瓣影评
2018/03/26 Python
Python解析json时提示“string indices must be integers”问题解决方法
2019/07/31 Python
Python程序暂停的正常处理方法
2019/11/07 Python
对Python中 \r, \n, \r\n的彻底理解
2020/03/06 Python
python爬虫开发之使用Python爬虫库requests多线程抓取猫眼电影TOP100实例
2020/03/10 Python
django inspectdb 操作已有数据库数据的使用步骤
2021/02/07 Python
HTML5 embed标签定义和用法详解
2014/05/09 HTML / CSS
Canvas实现贝赛尔曲线轨迹动画的示例代码
2019/04/25 HTML / CSS
物业经理求职自我评价
2013/09/22 职场文书
人事部主管岗位职责
2013/12/26 职场文书
授权委托书范本
2014/04/03 职场文书
感恩老师的演讲稿
2014/05/06 职场文书
幼儿园教师岗位职责
2015/04/02 职场文书
房租涨价通知
2015/04/23 职场文书
php 原生分页
2021/04/01 PHP
浅谈如何保证Mysql主从一致
2022/03/13 MySQL