js数组方法forEach、map、filter、reduce、every、some总结

首先是函数概述:
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条件。

相关文章
相关标签/搜索