js二维数组排序的简单示例代码
2018-10-12 14:04
901 查看
如下所示:
<!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>
您可能感兴趣的文章:
相关文章推荐
- js、php验证 邮箱 用户名 电话 邮编 地址 的简单示例代码
- js动画(animate)简单引擎代码示例
- JS简单实现表格排序功能示例
- JS中实现简单Formatter函数示例代码
- javascript 表格内容排序 简单操作示例代码
- JS简单实现表格排序功能示例
- php对二维数组按指定键值key排序示例代码
- php对二维数组按指定键值key排序示例代码
- javascript 表格内容排序 简单操作示例代码
- js 判断js函数、变量是否存在的简单示例代码
- JS实现简单表格排序操作示例
- 一个简单的JS时间控件示例代码(JS时分秒时间控件)
- javascript 表格内容排序 简单操作示例代码
- JS比较两个时间大小的简单示例代码
- js 判断js函数、变量是否存在的简单示例代码
- 一个简单的JS时间控件示例代码(JS时分秒时间控件)
- js禁止页面使用右键(简单示例代码)
- js设置文本框中焦点位置在最后的示例代码(简单实用)
- js制作简单的音乐播放器的示例代码