静态页面参数传递&回调函数写法&快速排序的实现方法

相信很多人都有一种陋习,就是收藏的文章,几乎从来都没有回过头来仔细看过。这次借着这次活动的机会,在《无懈可击的web设计》一书的学习过程中,穿插着讲自己曾经收藏过的,现在觉得还有价值的文章再看一遍,并记录笔记。努力做到:收藏 是因为自己看过了,懂了,怕忘掉而收藏,不是收藏了告诉自己,有空再看。

一、《利用js方法实现html静态页面间参数传递》

aa.html是参数输入界面
bb.html是参数接收界面
aa.html:

<html>
<head></head>
<body>
	<input type = "text" id = "inputid">
	<input type = "button" onclick = "submit()" value = "提交">
<script>
	function submit(){
		var input1 = document.getElementById("inputid");
		window.open("bb.html?inputStr=" + input1.value);//传入参数
	}
</script>
</body>
</html>

bb.html:

<html>
<head></head>
<body>
<script>
//获得参数的方法
	var request = 
	{ 
		QueryString : function(val){ 
			var uri = window.location.search; 
			var re = new RegExp("" +val+ "=([^&?]*)", "ig"); 
			return ((uri.match(re))?(uri.match(re)[0].substr(val.length+1)):null); 
		} 
	}
</script>
<script>
//调用方法获得参数
	var rt = request.QueryString("inputStr");
	alert(rt);
</script>
</body>
</html>

二、《js回调函数的写法》

  1. 非参数回调函数
function demo(one,callback){
	alert(one);
	if(callback && callback instanceof Function){
		callback();
	}
}
demo('a',function(){
	alert('b');
});
  1. 带参数的回调函数
function each(obj,callback){
	for(var i=0;l=obj.length;i<l;i++){
		callback.call(obj,i,obj[i]);
	}
}

三、《JavaScript快速排序的实现方法》

思路:

  1. 在数据集中,选择一个元素作为“基准”(pivot)
  2. 所有小于基准的元素,都迁移到基准左边,所有大于基准的元素,都迁移到基准右边
  3. 对基准左边和右边的两个子集,不断重复第一步和第二步,直到所有子集只剩下一个元素为止
var quickSort=function(arr){
	if(arr.length<=1) {return arr};
	var pivotIndex=Math.floor(arr.length/2);
	var pivot=arr.splice(pivotIndex,1)[0];
	var left=[];
	var right=[];
	
	for(var i=0;i<arr.length;i++){
		if(arr[i]<pivot){
			left.push(arr[i]);
		}else{
			right.push(arr[i]);
		}
	}

	return quickSort(left).concat([pivot],quickSort(right));
}

使用的时候,直接调用quickSort就行了。

原文地址:https://www.cnblogs.com/depsi/p/5046769.html