资讯专栏INFORMATION COLUMN

map, reduce, filter 等高阶函数

JaysonWang / 3146人阅读

摘要:换个新话题内容高阶函数至少满足以下条件函数可以作为参数被传递函数可以作为返回值被输出。区别返回值是,不可以链式调用返回一个新数组,原数组不会改变结语业精于勤而荒于嬉,行成于思而毁于随。

初衷

上篇其实还有一篇关于闭包的文章,由于在前几篇中已经涉及到了相关方面,因此闭包文章暂时搁置一下。换个新话题:

内容

高阶函数:Higher-order function;

至少满足以下条件:

    函数可以作为参数被传递;

    函数可以作为返回值被输出。

常见的高阶函数有: MapReduceFilterSort


1. Map

array.map(function(currentValue,index,arr), thisValue)

map() 不会改变原始数组

[55,44,66,11].map(function(currentValue,index,arr){
	console.log(currentValue); //map() 方法按照原始数组元素顺序依次处理元素
	console.log(index);
	console.log(arr);
});

让数组通过某种计算得到一个新数组

var newArr = [55,44,66,11].map(function(item,index,arr){
	return item *10;
});
console.log(newArr);//[550, 440, 660, 110]

2. reduce

array.reduce(function(total, currentValue, currentIndex, arr), initialValue)

initialValue:传递给函数的初始值;

让数组中的前项和后项做某种计算,并累计最终值。

var newArr = [15.5, 2.3, 1.1, 4.7].reduce(function(total,num){
	return total + Math.round(num);//对数组元素进行四舍五入并计算总和
}, 0);
console.log(newArr);//24

reduce() 对于空数组是不会执行回调函数

3. filter

array.filter(function(currentValue,index,arr), thisValue)

filter() 不会改变原始数组

var newArr = [32, 33, 12, 40].filter(function(item){
	return item > 32;
});
console.log(newArr);//[33, 40]

筛选出符合条件的项,组成新数组。

4. forEach

array.forEach(function(currentValue, index, arr), thisValue)

map() 与 forEach() 语法一致,能用`forEach()`做到的,`map()`同样可以,但是存在区别。

区别:

forEach()返回值是undefined,不可以链式调用;

map()返回一个新数组,原数组不会改变.

结语

业精于勤而荒于嬉,行成于思而毁于随。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/6997.html

相关文章

  • 【译】高阶函数:利用FilterMapReduce来编写更易维护的代码

    摘要:原文作者译者高阶函数可以帮助你增强你的,让你的代码更具有声明性。知道什么时候和怎样使用高阶函数是至关重要的。太棒了我们通过使用高阶函数减少了许多额外的代码。 原文:Higher Order Functions: Using Filter, Map and Reduce for More Maintainable Code作者:Guido Schmitz译者:JeLewine 高阶函数可...

    jone5679 评论0 收藏0
  • Python3的高阶函数map,reduce,filter

    摘要:函数的参数能接收变量,那么一个函数就可以接收另一个函数作为参数,这种函数就称之为高阶函数。和不同的是,把传入的函数依次作用于每个元素,然后根据返回值是还是决定保留还是丢弃该元素。 函数的参数能接收变量,那么一个函数就可以接收另一个函数作为参数,这种函数就称之为高阶函数。注意其中:map和filter返回一个惰性序列,可迭代对象,需要转化为list >>> a = 3.1415 >>> ...

    Codeing_ls 评论0 收藏0
  • 【重温基础】21.高阶函数

    摘要:欢迎您的支持系列目录复习资料资料整理个人整理重温基础篇重温基础对象介绍重温基础对象介绍重温基础介绍重温基础相等性判断重温基础闭包重温基础事件本章节复习的是中的高阶函数,可以提高我们的开发效率。 本文是 重温基础 系列文章的第二十一篇。 今日感受:想家。 本人自己整理的【Cute-JavaScript】资料,包含:【ES6/ES7/ES8/ES9】,【JavaScript基础...

    wua_wua2012 评论0 收藏0
  • 【重温基础】JS中的常用高阶函数介绍

    摘要:也可以直接调用内置方法常用高阶函数方法的作用是接收一个函数作为参数,对数组中每个元素按顺序调用一次传入的函数并返回结果,不改变原数组,返回一个新数组。 Ps. 晚上加班到快十点,回来赶紧整理整理这篇文章,今天老大给我推荐了一篇文章,我从写技术博客中收获到了什么?- J_Knight_,感受也是很多,自己也需要慢慢养成记录博客的习惯,即使起步艰难,难以坚持,但还是要让自己加油加油。 前...

    gitmilk 评论0 收藏0
  • JavaScript 编程精解 中文第三版 五、高阶函数

    摘要:高阶函数如果一个函数操作其他函数,即将其他函数作为参数或将函数作为返回值,那么我们可以将其称为高阶函数。我们可以使用高阶函数对一系列操作和值进行抽象。高阶函数有多种表现形式。脚本数据集数据处理是高阶函数表现突出的一个领域。 来源:ApacheCN『JavaScript 编程精解 中文第三版』翻译项目原文:Higher-Order Functions 译者:飞龙 协议:CC BY-NC-...

    blastz 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<