高阶函数 什么是高阶函数: 简单的说,函数A的参数或返回值是函数,这个函数A是高阶函数 为什么要用高阶函数: 只是让我们知道有这个概念:参数和返回值都可以是函数, 日常使用时不用去关注是不是高阶函数,只要熟悉几个函数就可以 map 接收函数用来处理数组 var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9]; results = arr.map(pow); // [1, 4, 9, 16, 25, 36, 49, 64, 81] reduce Array的reduce()把一个函数作用在这个Array的[x1, x2, x3...]上,这个函数必须接收两个参数,reduce()把结果继续和序列的下一个元素做累积计算 [x1, x2, x3, x4].reduce(f) = f(f(f(x1, x2), x3), x4) filter 接收函数用来处理数组 var arr = [1, 2, 4, 5, 6, 9, 10, 15]; var r = arr.filter(function (x) { return x % 2 !== 0; }); r; // [1, 5, 9, 15] 利用filter,可以巧妙地去除Array的重复元素 var r, arr = ['apple', 'strawberry', 'banana', 'pear', 'apple', 'orange', 'orange', 'strawberry']; r = arr.filter(function (element, index, self) { return self.indexOf(element) === index;//indexof()总是取出现的第一个索引,如果第一个索引和elment当前索引相等,说明elment是第一次出现,如果是第二次出现,那么elemet第一次出现的索引和element当前索引是不想等的 });