for ,foreach ,map 循环的区别

1、for循环javascript

一、for - 循环代码块必定的次数java

 遍历数组最经常使用到的for循环,是最为熟知的一种方法数组

for (var i=0; i<5; i++)
  {
  x=x + "The number is " + i + "<br>";
  }

从上面的例子中,能够看到:dom

Statement 1 在循环开始以前设置变量 (var i=0)。函数

Statement 2 定义循环运行的条件(i 必须小于 5)。测试

Statement 3 在每次代码块已被执行后增长一个值 (i++)。优化

 

二、for/in - 循环遍历对象的属性ui

var person={fname:"John",lname:"Doe",age:25};

for (x  person)
  {
  txt=txt + person[x];
  }

in

三、while - 当指定的条件为 true 时循环指定的代码块this

若是忘记增长条件中所用变量的值,该循环永远不会结束spa

while (i<5)
  {
  x=x + "The number is " + i + "<br>";
  i++;
  }

四、do/while - 一样当指定的条件为 true 时循环指定的代码块

do/while 循环是 while 循环的变体。该循环会执行一次代码块,在检查条件是否为真以前,而后若是条件为真的话,就会重复这个循环。循环至少会执行一次,即便条件是 false,隐藏代码块会在条件被测试前执行

do
  {
  x=x + "The number is " + i + "<br>";
  i++;
  }
while (i<5);

2、foreach 用于调用数组的每一个元素,并将元素传递给回调函数。注意: forEach() 对于空数组是不会执行回调函数的。

array.forEach(function(currentValue, index, arr), thisValue)
currentValue:必需。当前元素
index:可选。当前元素的索引值。
arr:可选。当前元素所属的数组对象。
thisValue:可选。传递给函数的值通常用 "this" 值。
若是这个参数为空, "undefined" 会传递给 "this" 值

#for  和  foreach 的总结

3、map

.map(callback(index,domElement))

.map()要比.forEach()执行速度更快。虽然我也说过执行速度不是咱们须要考虑的主要因素,可是他们都比for()要更好用,那确定要选更优化的一个,可是map()方法不会对空数组进行检测。

第二,.forEach()的返回值并非array

var arr = [1, 2, 3]; console.log( arr.map(function(i){ return i+i; }) //链式风格 .sort() );// [2,4,6] console.log( arr.forEach(function(i){ return i+i; }) //接不起来,断了 .sort() );//TypeError: Cannot read property 'sort' of undefined
  • map:和forEach很是类似,都是用来遍历数组中的每一项值的,用来遍历数组中的每一项;
  • 区别:map的回调函数中支持return返回值;return的是啥,至关于把数组中的这一项变为啥(并不影响原来的数组,只是至关于把原数组克隆一份,把克隆的这一份的数组中的对应项改变了);
  • 无论是forEach仍是map 都支持第二个参数值,第二个参数的意思是把匿名回调函数中的this进行修改。

#map 和 foreach的总结

一、map速度比foreach快

二、map会返回一个新数组,不对原数组产生影响,foreach不会产生新数组,

三、map由于返回数组因此能够链式操做,foreach不能

相关文章
相关标签/搜索