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

本文实例分析了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程序设计有所帮助。

(0)

相关推荐

  • 详谈js中标准for循环与foreach(for in)的区别

    js中遍历数组的有两种方式 var array=['a'] //标准的for循环 for(var i=1;i<array.length;i++){ alert(array[i]) } //foreach循环 for(var i in array){ alert(array[i]) } 正常情况下上面两种遍历数组的方式结果一样.首先说两者的第一个区别 标准的for循环中的i是number类型,表示的是数组的下标,但是foreach循环中的i表示的是数组的key是string类型,因为js中一切皆为

  • JS数组的遍历方式for循环与for...in

    JS数组的遍历方法有两种: 第一种:一般的for循环,例如: var a = new Array("first", "second", "third") for(var i = 0;i < a.length; i++) { document.write(a[i]+","); } 输出的结果:fitst,second,third 第一种:用for...in 这种遍历的方式,例如: var arr = new Array(&

  • 全面解析JavaScript里的循环方法之forEach,for-in,for-of

    JavaScript一种直译式脚本语言,是一种动态类型.弱类型.基于原型的语言,内置支持类型.它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML(标准通用标记语言下的一个应用)网页上使用,用来给HTML网页增加动态功能. JavaScript诞生已经有20多年了,我们一直使用的用来循环一个数组的方法是这样的: for (var index = 0; index < myArray.length; index++) { console.log(m

  • 浅谈javascript中for in 和 for each in的区别

    区别一: for in是javascript 1.0 中发布的.         for each in是作为E4X标准的一部分在javascript 1.6中发布的,而它不是ECMAScript标准的一部分.         这将意味着存在各种浏览器的兼容性问题.for each in,对很多浏览器都不支持的.例如是不支持IE6,IE7,IE8等浏览器的. 区别二: 例:  var 长方形= {  高:"15",  宽:"25"  }; for (var i in

  • javascript数组遍历for与for in区别详解

    js中遍历数组的有两种方式 复制代码 代码如下: var array=['a'] //标准的for循环 for(var i=1;i<array.length;i++){     alert(array[i]) } //foreach循环 for(var i in array){     alert(array[i]) } 正常情况下上面两种遍历数组的方式结果一样.首先说两者的第一个区别 标准的for循环中的i是number类型,表示的是数组的下标,但是foreach循环中的i表示的是数组的key

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

    本文实例分析了js的for in循环和java里foreach循环的区别.分享给大家供大家参考.具体分析如下: js里的for in循环定义如下: 复制代码 代码如下: for(var variable in obj) { ... } obj可以是一个普通的js对象或者一个数组.如果obj是js对象,那么variable在遍历中得到的是对象的属性的名字,而不是属性对应的值.如果obj是数组,那么variable在遍历中得到的是数组的下标. 遍历对象实验: 复制代码 代码如下: var v = {

  • 浅析java的foreach循环

    使用foreach循环遍历数组和集合时,无需获得数组和集合的长度,无须根据索引来访问数组元素和集合元素,foreach循环自动遍历数组和集合的每一个元素. 复制代码 代码如下: foreach的语句格式: for(type variableName : array|connection){      //variable自动迭代访问每一个元素} 例子: 复制代码 代码如下: public class ForEachTest{public static void main(String[] arg

  • 代码详解java里的“==”和“equels”区别

    测试1: 先看一组String类型比较,废话不多说,直接上代码: public class Test { public static void main(String[] args) { String a = "java书苑"; String b = "java书苑"; String c = new String("java书苑"); String d = new String("java书苑").intern(); if(a

  • Java overload和override的区别分析

    方法的重写(Overriding)和重载(Overloading)是Java多态性的不同表现.重写(Overriding)是父类与子类之间多态性的一种表现,而重载(Overloading)是一个类中多态性的一种表现. 如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding).子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被"屏蔽"了. 如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型或有不同的参

  • Java throw和throws使用区别分析

    代码实例: 问题:为什么testRunntimeException()方法没有出现编译错误提示,而testCheckedException()方法却出现unhandle exception? 分析: Excepiton分两类:checked exception.runtime exception:直接继承自Exception就是checked exception,继承自RuntimeException就是runtime的exception. 你可以简单地理解checked exception就是

  • Java流程控制之循环结构for,增强for循环

    目录 1.for循环 1.1-for循环语法格式及说明 1.2-for循环实例练习演示 2.增强for循环 2.1-增强for循环语法格式及说明 2.2-增强for循环实例演示 1.for循环 虽然所有循环结构都可以用 while 或者 do-while来表示,但 for 循环的出现,可使一些循环结构变得更加简单明了. 注意: for循环执行的次数是在执行前就确定的. 实例助解:while循环和for循环 public static void main(String[] args) { int

  • MyBatis如何进行双重foreach循环

    目录 进行双重foreach循环 使用场景 mybatis foreach循环,传入多个参数 上代码 进行双重foreach循环 mapname是一个Map<String,Map<String,Object>> 对象 <foreach collection="mapname" index="key1" item="value1" separator=",">     <foreach

  • Java使用for循环解决经典的鸡兔同笼问题示例

    本文实例讲述了Java使用for循环解决经典的鸡兔同笼问题.分享给大家供大家参考,具体如下: for循环经典,鸡兔同笼问题 问题:鸡兔同笼,鸡兔一共35只.笼子里脚一共94只,请问分别有多少只鸡和兔? 思路:首先明确思路,鸡的数量*2加上兔子的数量*4等于脚的总数94,这是一个关键点, 代码很简单,但是关键的条件却要花很多时间去找,要是不明白的真的是很烦啊. 利用for循环列举出所有可能直到if满足条件, 列出表达式 鸡*2 加 兔*4 等于 脚总数94 ,这是if的判断条件,满足就可以直接输出

  • java中lambda(函数式编程)一行解决foreach循环问题

    java lambda(函数式编程)一行解决foreach循环 首先给大家推荐<精通lambda表达式:java多核编程> 这本书详细介绍了lambda表达式从入门到理解.应用 下面介绍用以前的循环方式进行对比,来更加清晰地java函数式编程中foreach的用法 一.以前我们使用的for循环 /** * for循环 */ @Test public void forTest() { // 实例化一个List List<Point> points = Arrays.asList(ne

  • java foreach循环为什么不能赋值的讲解

    foreach循环为什么不能赋值 直接上代码 public class test4 { public static void main(String args[]){ int [] a=new int[3]; for(int j:a){ j=55; } } } 代码很简单 下面是java编译后的字节码 public class test4 { public test4(); Code: 0: aload_0 1: invokespecial #8 // Method java/lang/Obje

随机推荐