13 高阶函数map,filter

高阶函数
什么是高阶函数:
		简单的说,函数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当前索引是不想等的
			});

  

posted on 2019-01-12 17:59  悬剑  阅读(90)  评论(0编辑  收藏  举报

导航