前端 | 高阶函数(.filter .map .reduce)的使用总结

前端优化.png

"高阶函数是一个将一个或多个函数作为参数的函数" ——ClojureBridge

高阶函数可以帮助增强你的Javascript,使你的代码简单、简练、可读性强。

Array.prototype.filter()

filter()方法创建一个新数组,其包含是符合条件的元素
用法:

var words = ["spray", "limit", "elite", "exuberant", "destruction", "present"];

var longWords = words.filter(function ( word ) {

  //return true 则将该word push到longWords数组里
  //return false 则布会将改word   push到longWords数组里

    return word.length > 6;
});

  // Filtered array longWords is ["exuberant", "destruction", "present"]

在ES6中,可以使用箭头函数

var words = ["spray", "limit", "elite", "exuberant", "destruction", "present"];

var longWords = words.filter( word  =>  word.length > 6);

// Filtered array longWords is ["exuberant", "destruction", "present"]

Array.prototype.map()

map()方法创建一个新数组,其结果是该数组中的每个元素都调用一个提供的函数后返回的结果

用法:

var numbers = [1, 5, 10, 15];
var doubles = numbers.map(function(x) {
   return x * 2;
});
// doubles is now [2, 10, 20, 30]
// numbers is still [1, 5, 10, 15]

var numbers = [1, 4, 9];
var roots = numbers.map(Math.sqrt);
// roots is now [1, 2, 3]
// numbers is still [1, 4, 9]

Array.prototype.reduce()

reduce()方法适用于累加

var total = [0, 1, 2, 3].reduce(function(sum, value) {
    return sum + value;
}, 0);
  // total is 6

var flattened = [[0, 1], [2, 3], [4, 5]].reduce(function(a, b)
 {
//concat() 方法用于连接两个或多个数组
  return a.concat(b);
}, []);
// flattened is [0, 1, 2, 3, 4, 5]
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 感谢社区中各位的大力支持,译者再次奉上一点点福利:阿里云产品券,享受所有官网优惠,并抽取幸运大奖:点击这里领取 你...
    HetfieldJoe阅读 775评论 0 2
  • 函数和对象 1、函数 1.1 函数概述 函数对于任何一门语言来说都是核心的概念。通过函数可以封装任意多条语句,而且...
    道无虚阅读 4,663评论 0 5
  • 亲爱的妈妈: 昨天,我得知你送咪贝上编程课的时候和周老师聊了会天。你告诉周老师,惊喜地看到自己的女儿越来越出色,连...
    葛瑛阅读 218评论 2 6
  • 晚上跟兼职下班的室友去烧烤了,一开始是这么打算。到地儿了,烟雾缭绕,恍如仙境,一阵猛烈的咳嗽让我们打消了擅闯仙境,...
    z大胖阅读 149评论 0 0
  • 学习了ACCESS CONSCIOUSNESS 的课程,其中有一句话是生命中的一切得来都是轻松愉悦而充满荣耀的。当...
    lanfang阅读 211评论 0 1