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循环的时候犯错了。这次总结清楚,以后就不会犯错误了。

最新文章

  1. SQLITE配置环境变量
  2. 03-树2 Tree Traversals Again
  3. seajs 学习笔记
  4. Crossing River poj1700贪心
  5. Base64笔记
  6. MySQL 6.0安装图解
  7. weex Mac开发环境
  8. 2017级C语言教学总结
  9. 干货:MySQL 索引原理及慢查询优化
  10. [Ext.Net]动态生成控件(二)--js动态添加文本框
  11. 从0开始构建你的api网关--Spring Cloud Gateway网关实战及原理解析
  12. Luogu P2158 仪仗队 题解报告
  13. MRC-block与ARC-block
  14. 关于Https
  15. 笔记react router 4(三)
  16. [cmd]如何设置 Windows 默认命令行窗口大小和缓冲区大小
  17. seleniumWebdriver浏览器驱动信息汇总
  18. JavaScript unshift()函数移入数据到数组第一位
  19. am335x Linux kernel DTS pinmux 定义记录
  20. 深度学习(十六) ReLU为什么比Sigmoid效果好

热门文章

  1. JS nodeType返回类型
  2. Linux基本操作 2-----Linux文件系统基本结构
  3. javascript 模仿回车键事件
  4. 使用repo的本地开发流程
  5. java学习——abstract 和 final
  6. oracle 初探内存结构
  7. Java实现的 线程池
  8. hdu 1042 N!(高精度乘法)
  9. YUI Array 之each| forEach(遍历)
  10. C# 导出Excel Aspose.Cells