当前位置: 代码迷 >> 综合 >> 关于数组filter()、map()、reduce()三个高阶函数的简介
  详细解决方案

关于数组filter()、map()、reduce()三个高阶函数的简介

热度:74   发布时间:2023-11-22 21:38:18.0

filter()函数:

核心概念相当于一个"筛选器"。

需要定义一个筛选函数,用于筛选数组中满足条件的数据。

例:

需求:筛选数组中大于10的数字

 实现代码:

  const nums = [1, 2, 6, 18, 11, 3]  let newNums = nums.filter(function(n){return n > 10})

map()函数:

核心概念相当于一个"处理器"。

需要定义一个处理函数,用于处理数组中的数据并且返回。

例:

需求:将数组中的数据扩大两倍

实现代码:

const nums = [1, 2, 3, 8, 5]let newNums = nums.map(function(n) {return n*2
})

reduce()函数:

核心概念相当于一个"高级汇总器"。

需要定义一个汇总器,并且给一个初始化参数,汇总完之后返回汇总数组。

例:

需求:将数组中的数据去重

实现代码:

const nums = [1, 2, 3, 2, 4, 3, 8]let newNums = nums.reduce(function(pre, crr){if(!pre.includes(crr)) {return pre.concat(crr)}else {return pre}
}, []}

稍作讲解:一开始将pre初始化为[ ],即空数组。后面将符合条件的crr同pre相连接。最后返回符合条件的数组,即去重的数组。

PS: 此处只是通俗易解地讲解了filter(), map(), reduce() 这三个函数的作用以及运用,若要深入理解,请自行查看其它深入的讲解或者函数源码。

  相关解决方案