您的位置:首页 > 其它

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

2015-12-14 22:38 579 查看

相信很多人都有一种陋习,就是收藏的文章,几乎从来都没有回过头来仔细看过。这次借着这次活动的机会,在《无懈可击的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回调函数的写法》

非参数回调函数

function demo(one,callback){
alert(one);
if(callback && callback instanceof Function){
callback();
}
}
demo('a',function(){
alert('b');
});


带参数的回调函数

function each(obj,callback){
for(var i=0;l=obj.length;i<l;i++){
callback.call(obj,i,obj[i]);
}
}

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

思路:

在数据集中,选择一个元素作为“基准”(pivot)

所有小于基准的元素,都迁移到基准左边,所有大于基准的元素,都迁移到基准右边

对基准左边和右边的两个子集,不断重复第一步和第二步,直到所有子集只剩下一个元素为止

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就行了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: