js二维数组排序的简单示例代码
js二维数组排序的简单示例代码
发布时间:2016-12-30 来源:查字典编辑
摘要:如下所示:复制代码代码如下:NewDocument

如下所示:

复制代码 代码如下:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<title> New Document </title>

<meta name="Generator" content="EditPlus">

<meta name="Author" content="">

<meta name="Keywords" content="">

<meta name="Description" content="">

<script type="text/javascript">

<!--

function getCard(m){

var ret = [], rnd;

for(var i = 0; i < m; i++){

rnd = Math.floor(Math.random()*(i+0.9999));

ret[i] = ret[rnd];

ret[rnd] = i

}

return ret;

}

var data = [];

{

for(var i = 0; i < 100; i ++){

data.push(getCard(10));

}

}

// 二维数据排序

function mySort(array, col, ord, b, e){

if(array.length == 0) return;

//document.write("排序前"+array);

var t = [], s, i, curCol = col[0];

for(i = b; i < e; i ++){

s = new String(array[i][curCol]);

s._obj = array[i];

t.push(s)

}

t.sort();

if(ord[0] == "des"){

t.reverse();

}

for(i = 0; i < e - b; i++){

//document.write("<br/>");

//document.write(array[i]);

//document.write("<br/>");

//document.write(t[i]._obj);

//document.write("<br/>");

//document.write(t[i]._obj == array[b+i]);

array[b+i] = t[i]._obj;

}

//document.write("排序后====================<br/>")

//print(array);

var begin, end;

if(col.length > 1){

col.shift();

ord.shift();

begin = b;

for(i = b; i < e - b - 1; i++){

if( array[i][curCol] != array[i+1][curCol] ){

end = i+1;

//document.write("begin="+begin+"end="+end+"<br/>");

mySort(array,col,ord,begin,end);

begin = end;

}

}

if(begin != e){

mySort(array,col,ord,begin,e);

}

}

//document.write("<br/>");

//document.write("排序后"+array);

}

function print(data){

for(var i = 0; i < data.length; i++){

document.write(data[i]+"<br/>");

}

}

document.write("排序前====================<br/>");

print(data);

var b = new Date().getTime();;

mySort(data, [0,1,2],['asc','des','asc'],0,data.length);

document.write("用时"+(new Date().getTime() - b));

document.write("排序后====================<br/>")

print(data);

//-->

</script>

</head>

<body>

</body>

</html>

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新Javascript教程学习
热门Javascript教程学习
编程开发子分类