for ,foreach ,map 循环的区别

一、for循环

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

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

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

从上面的例子中,可以看到:

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

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

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

 

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

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

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

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

如果忘记增加条件中所用变量的值,该循环永远不会结束

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

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

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

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

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

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

#for  和  foreach 的总结

三、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的总结

1、map速度比foreach快

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

3、map因为返回数组所以可以链式操作,foreach不能

 

转载于:https://www.cnblogs.com/sjxx/p/7410710.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C知道:forEachmap和for循环都是用于遍历数组的方法,但它们有一些区别。 1. forEachforEach是一个数组方法,它接受一个回调函数作为参数,并且对数组中的每个元素都执行一次回调函数。forEach不会返回任何值,它主要用于对数组进行遍历和执行副作用操作,比如修改数组中的元素或输出结果。例如: ```javascript const array = [1, 2, 3]; array.forEach((element) => { console.log(element); }); ``` 2. mapmap也是一个数组方法,它接受一个回调函数作为参数,并且对数组中的每个元素都执行一次回调函数。不同于forEachmap会返回一个新的数组,该数组包含了回调函数的返回值。map方法通常用于根据原始数组生成一个新的数组,而不会修改原始数组。例如: ```javascript const array = [1, 2, 3]; const newArray = array.map((element) => { return element * 2; }); console.log(newArray); // [2, 4, 6] ``` 3. for循环:for循环是一种传统的遍历方式,它通过控制变量的增量来遍历数组。相比于forEachmap方法,for循环更加灵活,并且可以在循环过程中进行更多的操作。例如: ```javascript const array = [1, 2, 3]; for (let i = 0; i < array.length; i++) { console.log(array[i]); } ``` 总结:forEachmap方法是对数组进行遍历的两种方式,其中forEach主要用于执行副作用操作,而map主要用于生成新的数组。for循环是一种传统的遍历方式,更加灵活,可以在循环过程中进行更多的操作。具体使用哪种方法取决于具体的需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值