<!doctype html>
<html lang="us">
<head>
<meta charset="GBK">
<title>jQuery UI Example Page</title>
<script src="../js/jquery-1.9.1.js"></script>
<script>
var flSort={};
flSort.index = 0;
flSort.asc = -1;
flSort.gzfl = function(){
flSort.index = 0;
}
flSort.rwfl = function(){
flSort.index = 1;
}
flSort.sort = function(a,b){
var p = b[$.flSort.index] ? b[$.flSort.index] : " ";
var q = a[$.flSort.index] ? a[$.flSort.index] : " ";
return (p-q) * $.flSort.asc ;
}
flSort.splitArray=function(arr,p){
var t;
var len = arr.length;
var split = []
for(var i = 0; i < len; i++){
if(t != arr[i][p]){
t = arr[i][p];
split.push(i);
}
}
split.push(len);
len = split.length;
var s = 0;
var r = [];
var c;
for(var i = 0; i < len; i++){
var t = arr.slice(s,split[i]);
if(t.length > 0){
t.sort($.flSort.sort);
}
for(var j = 0; j < t.length; j++){
r.push(t[j]);
}
s = split[i];
}
return r;
}
var index = 0;
function log(message){
$("#log").append("<p>"+(++index)+"=\t"+message+"</p>");
}
jQuery.flSort = flSort;
$(document).ready(function(){
var d = [];
for(var i = 0; i<1000; i++){
var t = [];
for(var j = 0; j < 3; j++){
t.push(Math.ceil(Math.random()*15));
}
d.push(t);
}
//d = [[1,2,3],[1,3,10],[1,11,3],[2,7,7],[3,11,3],[4,5,2],[6,15,8],[6,10,7],[9,6,8],[9,3,4],[11,15,13],[11,9,10],[14,12,10],[14,6,4],[15,7,11]];
//d = [[1,22,3],[1,3,10],[1,11,3]];
for(var i = 0; i < d.length; i++){
d[i].splice(2);
}
var begin= new Date().getTime();
$.flSort.index = 0;
d = d.sort($.flSort.sort);
$.flSort.index = 1
d = $.flSort.splitArray(d,0);
log("time = "+(new Date().getTime() - begin));
$("div").each(function(){
$(this).css("background-color","rgb("+Math.ceil(Math.random()*256)+","+Math.ceil(Math.random()*200)+","+Math.ceil(Math.random()*300)+")");
});
$("#sort2").html(d.join("<br/>"));
});
</script>
<style>
div{float:left; width:400px; margin:10px;}
</style>
</head>
<body>
<div id = "log" ></div>
<div id = "sort2"></div>
<div id = "index"></div>
<div id = "sort" ></div>
</body>
</html>
js数组的排序
最新推荐文章于 2024-04-23 00:45:00 发布