JavaScript的map/reduce/filter/sort 高阶函数

<!DOCTYPE html>
<html>
<head>
	<title></title>
</head>
<body>
	<script type="text/javascript">
	
	// 高阶函数讲解
	
	//map 方法
	var arr = [1,2,3,4,5];
	var arr2 = arr.map(function(x){return x*10;});
	console.log(arr2); //[10,20,30,40,50]
	console.log(typeof arr2); //Object
	//第二种写法
	function foo(x){
		return x*10;
	}
	var arr3 = arr.map(foo);
	console.log(arr3);


	// reduce 方法
	var num = arr.reduce(function(x,y){return x+y;});
	console.log(num); // 15
	console.log(typeof num); // Number
	// 同样第二种写法
	


	// sort方法
	
	var arr4 = [1,2,10,20];
	arr4.sort();
	console.log(arr4); // [1,10,2,20] 
	//这是因为sort方法默认先把所有元素转化为String再排序,所以10 在 2 的前面
	
	function cmp(x,y){
		if(x<y) return -1;
		if(x>y) return 1;
		if(x==y) return 0;
	};

	arr4.sort(cmp);
	console.log(arr4);

	// 比较字符串,忽略大小写
	function cmp2(s1,s2){
		x = s1.toUpperCase();
		//x.toLowerCase();
		y = s2.toUpperCase();
		if(x<y) return -1;
		if(x>y) return 1;
		if(x==y) return 0;
	}

	var arr4 = ['Google', 'apple', 'Microsoft'];
	arr4.sort(cmp2);
	console.log(arr4);

	var arr5 = ['a','b','g','c'];
	arr5.sort();
	console.log(arr5);

	//友情提示: sort方法会直接对arr进行修改
	//map reduce filter不会
	

	// filter方法 去除偶数
	arr6 =[1,2,3,4,5,6,7,8,9,10];
	var arr7 = arr6.filter(function(x){return x%2 != 0});
	console.log(arr7);


	// 如何去除空字符串
	arr8 = ['A','','','D',null,undefined];
	function foo9(x){
		return x && x.trim();	
	}
	var arr9 = arr8.filter(foo9);
	console.log(arr9); // A D

	</script>
</body>
</html>	





	

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值