js 扩充数组的sort方法
2011-04-09 11:20
344 查看
//一维数组的排序
// type 参数
// 0 字母顺序(默认)
// 1 大小 比较适合数字数组排序
// 2 拼音 适合中文数组
// 3 乱序 有些时候要故意打乱顺序,呵呵
// 4 带搜索 str 为要搜索的字符串 匹配的元素排在前面
function Array.prototype.SortBy(type,str)
{
switch (type)
{
case 0:this.sort(); break;
case 1:this.sort(function(a,b){ return a-b; }); break;
case 2:this.sort(function(a,b){ return a.localeCompare(b) }); break;
case 3:this.sort(function(){ return Math.random()>0.5?-1:1; }); break;
case 4:this.sort(function(a,b){ return a.indexOf(str)==-1?1:-1; }); break;
default:this.sort();
}
}
随机数组
<script>
var ars=['金','木','水','火','土','仁','义','礼','志','贤'];
for(var i=ars.length-1;i>0;i--)
ars.push(ars.splice(Math.round(Math.random()*i), 1))
alert(ars)
</script>
<script>
//随机重排数组,by kill,20:39 03-4-14
//产生随机数:
rnd.today=new Date();
rnd.seed=rnd.today.getTime();
function rnd()
{
rnd.seed = (rnd.seed*9301+49297) % 233280;
return rnd.seed/(233280.0);
}
function rand(number) {return Math.ceil(rnd()*number);}
//原数组
var arr = new Array("1","2","3","4","5","6","7","8","9","10");
out_put(arr);
document.write("<hr width=180 align=left><input type='button' onclick='location.reload()' value=' refresh '></input><br><br>");
//随机重排数组后输出:
for(var i=0;i<10;i++)
{
arr_rand(arr);
out_put(arr);
}
//数组输出函数
function out_put(arr)
{
for(var i=0;i<arr.length;i++)
document.write(" "+arr[i]);
document.write("<br>");
}
//数组重组函数,将每个元素与一随机元素换位:
function arr_rand(arr)
{
for(var i=0;i<arr.length;i++)
{
var tem,ranarr=rand(arr.length-1);
tem=arr[i];
arr[i]=arr[ranarr];
arr[ranarr]=tem;
}
}
</script>
<style>*{font-size:35px;font-weight:bolder;letter-spacing:10px;overflow:hidden;text-decoration:underline}</style>
<script>
var ars,str='';ars=['金','木','水','火','土','仁','义','礼','志','贤'];
for(j=0;j<10;j++){for(i=0;i<10;i++){str+=ars[Math.round(10*Math.random())];if(/(.).*/1/ig.test(str))str=str.substring(0,i--)}document.write(str+'
');}
</script>
<script>
ars=['金','木','水','火','土','仁','义','礼','志','贤']
for (var i=0; i<10; i++)
document.write(ars.sort(function(){return Math.random( )*new Date%3-1})+"<br />")
</script>
// type 参数
// 0 字母顺序(默认)
// 1 大小 比较适合数字数组排序
// 2 拼音 适合中文数组
// 3 乱序 有些时候要故意打乱顺序,呵呵
// 4 带搜索 str 为要搜索的字符串 匹配的元素排在前面
function Array.prototype.SortBy(type,str)
{
switch (type)
{
case 0:this.sort(); break;
case 1:this.sort(function(a,b){ return a-b; }); break;
case 2:this.sort(function(a,b){ return a.localeCompare(b) }); break;
case 3:this.sort(function(){ return Math.random()>0.5?-1:1; }); break;
case 4:this.sort(function(a,b){ return a.indexOf(str)==-1?1:-1; }); break;
default:this.sort();
}
}
随机数组
<script>
var ars=['金','木','水','火','土','仁','义','礼','志','贤'];
for(var i=ars.length-1;i>0;i--)
ars.push(ars.splice(Math.round(Math.random()*i), 1))
alert(ars)
</script>
<script>
//随机重排数组,by kill,20:39 03-4-14
//产生随机数:
rnd.today=new Date();
rnd.seed=rnd.today.getTime();
function rnd()
{
rnd.seed = (rnd.seed*9301+49297) % 233280;
return rnd.seed/(233280.0);
}
function rand(number) {return Math.ceil(rnd()*number);}
//原数组
var arr = new Array("1","2","3","4","5","6","7","8","9","10");
out_put(arr);
document.write("<hr width=180 align=left><input type='button' onclick='location.reload()' value=' refresh '></input><br><br>");
//随机重排数组后输出:
for(var i=0;i<10;i++)
{
arr_rand(arr);
out_put(arr);
}
//数组输出函数
function out_put(arr)
{
for(var i=0;i<arr.length;i++)
document.write(" "+arr[i]);
document.write("<br>");
}
//数组重组函数,将每个元素与一随机元素换位:
function arr_rand(arr)
{
for(var i=0;i<arr.length;i++)
{
var tem,ranarr=rand(arr.length-1);
tem=arr[i];
arr[i]=arr[ranarr];
arr[ranarr]=tem;
}
}
</script>
<style>*{font-size:35px;font-weight:bolder;letter-spacing:10px;overflow:hidden;text-decoration:underline}</style>
<script>
var ars,str='';ars=['金','木','水','火','土','仁','义','礼','志','贤'];
for(j=0;j<10;j++){for(i=0;i<10;i++){str+=ars[Math.round(10*Math.random())];if(/(.).*/1/ig.test(str))str=str.substring(0,i--)}document.write(str+'
');}
</script>
<script>
ars=['金','木','水','火','土','仁','义','礼','志','贤']
for (var i=0; i<10; i++)
document.write(ars.sort(function(){return Math.random( )*new Date%3-1})+"<br />")
</script>
相关文章推荐
- js数组 sort方法的分析 转自NorthSnow HOME
- js数组 sort方法的分析
- js sort方法根据数组中对象的某一个属性值进行排序
- js数组 sort方法的分析
- JS中的数组的sort方法使用示例
- js中的数组Array定义与sort方法使用示例
- js sort方法根据数组中对象的某一个属性值进行排序
- JS数组 sort()方法使用
- js数组常见用法:reduce方法、join、push、pop、reverse、shift、sort
- js高级程序设计(第三版)总结--数组重排序方法 reverse() 和 sort()的用法
- js使用Array.prototype.sort()对数组对象排序的方法
- js中数组排序sort方法的原理分析
- js中数组的sort()方法及原理
- 关于JS中的数组的sort方法
- 由数组随机化排序引出的对于js中sort()方法的理解分析
- js采用concat和sort将N个数组拼接起来的方法
- js中的数组Array定义与sort方法使用示例
- js数组排序 reverse()和sort()方法的使用,
- js:数组重排序问题:如何使用sort()方法按数值的大小进行升序或降序排列
- js数组的一些方法join,split,sort