首先是函数概述:
map():返回一个新的Array,每一个元素为调用func的结果
filter():返回一个符合func条件的元素数组
some():返回一个boolean,判断是否有元素是否符合func条件
every():返回一个boolean,判断每一个元素是否符合func条件
forEach():没有返回值,只是针对每一个元素调用func
reduce():有返回值,重点是计算数组,返回一个值
其次
一、map速度比forEach快
二、map会返回一个新数组,不对原数组产生影响,foreach不会产生新数组,
三、map由于返回数组因此能够链式操做,forEach不能javascript
filter
语法java
var new_arr = arr.filter(callback(element, index, array){ }, this)
参数:callback 回调数组
element 当前的value index 当前的索引值 array arr这个数组对象 this 回调的this指向
用法
//若是返回值是true的话,就是符合条件。
//filter 不会改变原数组,它返回过滤后的新数组。
//这个里返回数组里面的偶数
[10,11,12,13].filter((v)=>v % 2 == 0)
场景
场景就是过滤,把符合条件的整理到一块儿,常见的就是展现审核经过的数据函数
forEach
语法this
arr.forEach(callback(element, index, array){ }, this)
参数:callback 回调code
element 当前的value index 当前的索引值 array arr这个数组对象 this 回调的this指向
用法
//遍历数组。打印到控制台对象
[10,11,12,13].forEach((v)=>{ console.log(v) })
// 成功的收集到success里面,错误的收集到error里面。索引
var success = [],error = []; [{state:1},{state:0},{state:0},{state:0}].forEach((v)=>{ if(v.state == 1){ success.push(v) }else{ error.push(v) } })
场景
好比说绑定事件,好比判断值而后push到不一样的地方事件
map
语法ip
arr.map(callback(element, index, array){ }, this)
参数:callback 回调
element 当前的value index 当前的索引值 array arr这个数组对象 this 回调的this指向
用法
//把数值格式化,保留两位小数
[10.055,11.054,12.056,13.789].map((v)=>+v.toFixed(2))
场景
这个通常就用在,我须要一组值,可是这个值不对,须要计算原数组来生成。
reduce
语法
arr.reduce(callback(accumulator, element, index, array){ }, initialValue)
参数:callback 回调
sum 累加器的返回值,也就是上一次回调的返回值 element 当前的value index 当前的索引值 array arr这个数组对象 initialValue 初始传入的值,若是不传回调从下标1开始,下标0做为初始值
用法
//累加
[10,11,12,13].reduce((s,v)=>s+v,0)
场景
这个计算整个数组得出一个值的
some
语法
arr.some(callback(element, index, array){ }, this)
参数:callback 回调
element 当前的value index 当前的索引值 array arr这个数组对象 this 回调的this指向
用法
initArray = initArray.some(item => { if (item === 1){ return true } return false })
场景
这个通常就用在,判断数组里是否有某个值。
every
语法
arr.every(callback(element, index, array){ }, this)
参数:callback 回调
element 当前的value index 当前的索引值 array arr这个数组对象 this 回调的this指向
用法
initArray = initArray.every(item => { if (item === 1){ return true } return false })
场景这个通常就用在,判断数组的每一个元素是否符合func条件。