map、foreach、reduce、filters的用法及区别
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了map、foreach、reduce、filters的用法及区别相关的知识,希望对你有一定的参考价值。
参考技术A 1、 map方法,用于映射数据,返回映射后的数据。如下方,将arr数组中的成绩映射为及格或者不及格(返回新数组) 。let arr = [73,23,54,89,99,30,23];
//正常写法
let arr1 = arr.map(function(item)
return item>60?'及格':'不及格';
);
//简写,利用箭头函数
let arr2 = arr.map((item) =>
return item>60?'及格':'不及格';
);
//语法精简2(箭头函数的特性,参数有且只有一个)
let arr3 = arr.map(item => item>60?'及格':'不及格');
2、reduce方法,累加器,用于数据累加。如下方进行求和:
let arr = [1,2,3,4,5];
//普通写法
let arr1 = arr.reduce(function(tem,item,index)
// 参数 tem 代表两个数的结果,一开始代表数组的第一个元素,第二次则代表第一次return回来的值
// 参数 item 一开始代表第二个数组元素,第二次则代表当期元素
if(index == arr.length-1)
return (tem + item)/(index+1);
else
return tem + item;
);
//精简写法
let arr2 = arr.reduce((tem,item,index) =>
return index == arr.length-1?(tem + item)/(index+1):tem + item;
);
3、filter,用于过滤数据,当返回元素为true时,返回该元素。如下方,只保留数据中的奇数(返回新数组):
let arr = [1,2,3,4,5,6,7];
//普通写法
let arr1 = arr.filter(function(item)
return item %2 ==1?item:'';
// return item %2 ==1?true:false;
)
//精简写法
let arr2 = arr.filter(item =>item %2 ==1);
4、forEach,遍历数据
let arr = [1,2,3,4,5]
arr.forEach((item,index,arr) =>
alert(item) ;//当前值
alert(index);//当前下标
alert(arr); //当前数组
)
对 forEach(),map(),filter(),reduce(),find(),every(),some()的理解
1.forEach()
用法:array.forEach(function(item,index){})
没有返回值,只是单纯的遍历
2.map()
用法:array.map(function(item,index){})
遍历并对其进行操作,返回新数组,原数组不变
3.filter()
用法:array.filter(function(item,index){})
筛选符合条件的元素并返回新数组,原数组不变
4.find()
用法:array.find(function(item,index){})
返回符合条件的第一个元素,原数组不变
5.every()
用法:array.every(function(){item,index})
检测是否所有元素都符合条件,返回true或false
6.some()
用法:array.some(function(){item,index})
检测数组中是否有满足条件的元素,返回true或false
7.reduce()
用法:array.reduce(function(pre,item){})
pre:初始值,或第一个元素的值,或上一次叠加的结果
数组从左到右做累加操作并返回最后的结果(array=[1,2,3,4,5] 就是1和2经function操作完返回的结果再和3操作,如此到最后只得到一个值)
自己的理解,如果有错误望指出
以上是关于map、foreach、reduce、filters的用法及区别的主要内容,如果未能解决你的问题,请参考以下文章
[转] 对 forEach(),map(),filter(),reduce(),find(),every(),some()的理解
ES6 数组函数forEach()map()filter()find()every()some()reduce()
javascript 原生JavaScript方法的实现(forEach,Map,Filter,Reduce,Every,Some)
js数组中indexOf/filter/forEach/map/reduce详解