将电影文件排序—函数作为参数和返回值,理解js提供的sort冒泡排序

要点:

1.理解函数作为参数和作为返回值,就是将函数的处理结果直接使用了,而没有进行用第三个变量进行接收而已。

2.js提供的sort冒泡排序算法是不稳定的,需要加一步比较两个对象的操作,同时想要进行降序排序只要将返回的值改变一下,即可改变升降排序,不需要重写。

代码:

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
</head>
<body>
	<script type="text/javascript">
		function File(name,size,time){
			this.name = name;
			this.size = size;
			this.time = time;
		}
		var f1 = new File("my heart is go on.mp4","2057M","2008-8-8");
		var f2 = new File("you are best.mp4","5021M","2018-8-8");
		var f3 = new File("can you hear me.mp4","3562M","2015-5-5");
		var movie = [f1,f2,f3];
		// 将三个电影文件加入数组中

		function fn(attr){
			return function getSort(obj1,obj2){
				if(obj1[attr] > obj2[attr]){
					return 1;
				}else if(obj1[attr] == obj2[attr]){
                    return 0;
				}else{
					return -1;
				}
			}
			// 函数作为返回值
		}

		movie.sort(fn("time"));
		// 函数作为参数使用
		// sort系统提供的冒泡排序不稳定,需要上面一步添加比较两个值的大小,这样也可以改变升序和降序

		for(var i=0; i<movie.length; i++){
			console.log(movie[i].name +"---"+ movie[i].size +"---"+ movie[i].time);
		}
	</script>
</body>
</html>

 

效果: 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值