最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
js中数组的排序sort方法的原理
时间:2013-09-28 编辑:简简单单 来源:一聚教程网
最近在百度的项目中要用到对数组进行排序,当然一开始自然想到了数组的sort方法,这方法应用非常简单,大致如下:
代码如下 | 复制代码 |
window.onload=function(){ var arr=[2,55,55,1,75,3,9,35,70,166,432,678,32,98]; var arr2=["George","John","Thomas","James","Adrew","Martin"]; function arrsort(a,b){ return a-b; } console.log(arr.sort(arrsort)); //数字排序需要函数,如果要从大排到小,就return b-a; console.log(arr2.sort()); //字母不需要 |
}但是我突然想到,sort用法为什么这么简单,其原理到底是什么呢?于是我试着不用sort对数组排序,原理是找到数组的最小值插入到新数组,然后删除数组中的这个最小值,更新数组后继续寻找最小值插入,如此循环,代码如下:
代码如下 | 复制代码 |
window.onload=function(){ var arr=[2,55,55,1,75,3,9,35,70,166,432,678,32,98]; var len=arr.length; console.log(arr.join(",")); var newarr=[]; for(var i=0;i arr.splice(r(arr,Math.min.apply(null,arr)),1); //插入后,立马删除最小值 } //找到最小值在数组中的位置 function r(s,v){ for(k in s){ if(s[k] == v){ return k; } } } console.log(newarr.join(",")) } |
PS:这只是我写的一个方法,sort的原理应该不是这样的,还可以用冒泡法对数组排序,代码我就不写了,网上一大堆.当然上面的代码只是对数字数组进行了排序,对于字符串的排序,可以考虑字符串的localeCompare方法.
-
下一个: 基于jquery多张缩略图滚动插件示例
相关文章
- js数组排序方法总结 03-14
- js 数组排序实现代码 12-14
- js二维数组定义与排序方法 09-05
- HTML简单购物数量小程序代码展示 10-31
- html canvas实现弹幕功能 10-31
- HTML中空格表示的意义 10-31