共性:对数组进行循环,循环要做的事情都在回调函数里写了
一、forEach: |
| 功能:遍历数组中每个元素, |
| 参数:回调函数(回调函数的参数:数组的当前元素,下标,数组本身) |
| 解释:回调函数的代码就是循环体里要执行的代码。 |
| 返回值:无。 |
| var scores = [98,82,75,88,96,51,90]; |
| scores.forEach((item,index,arr)=>{ |
| item = item+1; |
| arr[index] = item+1; |
| }) |
| 自己定义一个forEach函数 |
| Array.prototype.myForEach = function(callback){ |
| this是:scores |
| for(let i=0;i<this.length;i++){ |
| callback(this[i],i,this); |
| } |
| } |
| 调用 |
| scores.myForEach((item,index,arr)=>{ |
| item = item+1; |
| arr[index] = item+2; |
| }) |
| console.log(scores); |
二、 map: |
| 功能:映射一个新的数组(遍历数组中每个元素,对每个元素做一定的处理,把处理的结果放在新的数组里), |
| 参数:回调函数(回调函数的参数:数组的当前元素,下标,数组本身) |
| 解释:回调函数的代码就是循环体里要执行的代码。 |
| 返回值:新的数组。 |
| var scores = [98,82,75,88,96,51,90]; |
| let arr = scores.map((item,index,arr)=>{ |
| return item+1; //这个结果是放在新的数组里了。 |
| }) |
| console.log("scores",scores); |
| console.log("arr",arr); |
三、 filter: |
| 功能:映射一个新的数组,新的数组是原数组中的一部分元素(满足回调函数里的条件的元素), |
| 参数:回调函数(回调函数的参数:数组的当前元素,下标,数组本身) |
| 解释:回调函数的代码就是循环体里要执行的代码。 |
| 返回值:新的数组。 |
| var scores = [98,82,75,88,96,51,90]; |
| let arr = scores.filter((item,index,arr)=>{ |
| return item>=60;//满足的条件 |
| }); |
| console.log("scores",scores); |
| console.log("arr",arr); |
四、 some: |
| 功能:完成的是判断。判断数组中是否有一些元素满足条件(回调函数里写的条件) |
| 参数:回调函数(回调函数的参数:数组的当前元素,下标,数组本身) |
| 解释:回调函数的代码就是循环体里要执行的代码。 |
| 返回值:true:有一些满足条件的元素;false:没有满足条件的元素(每一个都不满足)。 |
| var scores = [98,82,75,88,96,51,90]; |
| 判断是否有人不及格 |
| let has = scores.some(item=>{ |
| return item<60; |
| }) |
| console.log("has",has);//true |
五、 every: |
| 功能:完成的是判断。判断数组中是否每一个元素都满足条件(回调函数里写的条件) |
| 参数:回调函数(回调函数的参数:数组的当前元素,下标,数组本身) |
| 解释:回调函数的代码就是循环体里要执行的代码。 |
| 返回值:true:每一个都满足;false:有一些没有满足 |
| var scores = [98,82,75,88,96,51,90]; |
| let has = scores.every(item=>{ |
| return item<60; |
| }) |
| console.log("has",has);//false |









