在项目中遇到json数据排序的问题,从网上看到两种排序方法,列了出来,大家往下看
一种:快速排序
网上看到阮一峰写的一篇,链接在下面,我把代码整理了一下
http://http://www.ruanyifeng.com/blog/2011/04/quicksort_in_javascript.html
function quickSort(arr) { //假如数组个数小于1,则返回 if(arr.length<=1){ return arr; } var pivotIndex = Math.floor(arr.length/2);//向下取整 var pivot = arr.splice(pivotIndex,1)[0];//取基准值,就是最中间的那个值 var left = [];//存放比基准数小的元素 var right = [];//存放比基准数大的元素 for(var i=0;i<arr.length;i++){ //console.log('基准值:'+pivot+',当前元素'+arr[i]); if(arr[i]<pivot){ //console.log('移动'+arr[i]+'到左边'); left.push(arr[i]); } else { //console.log('移动'+arr[i]+'到右边'); right.push(arr[i]); } } return quickSort(left).concat([pivot],quickSort(right));//用递归将数据链接起来; } var sortlist = [20,68,47,21,10,10]; var lastval = quickSort(sortlist); console.log(lastval);
二种:冒泡排序
我用的是js原生提供的sort方法,数组两两来对比
var sortListData = [ { name:'11', age:90 }, { name:'11', age:10 }, { name:'11', age:15 }, ] function sortr(a,b){ return a.age-b.age; } sortListData.sort(sortr); console.log(sortListData);
目前项目中用到的是第二种方法,这两种哪个更优,哪个更快,求以后解答...