vue实现数组排序,常用的几种方法
总结一下js常用的排序,不然老是找不到,满足开发使用就行了
1,sort排序
sort常规使用
1 2 | var arry = [9,5,6,7,5,6,3,1,0] arry.sort() // [0, 1, 3, 5, 5, 6, 6, 7, 9] |
1 2 | var arry = [ 'CBC' , 'BBC' , 'DBC' , 'ABC' , 'KBC' , 'EBC' , 'MBC' ] arry.sort() // ['ABC', 'BBC', 'CBC', 'DBC', 'EBC', 'KBC', 'MBC'] |
注意:sort 默认会使用字符串的第一个字符来排序,当一个相等时,使用第二个以此类推,所以 ‘10’ 小于 ‘8’
1 2 | var arry = [ '10' , '8' , '4' , '3' , '20' , '0' , '12' , '11' ] arry.sort() // ['0', '10', '11', '12', '20', '3', '4', '8'] |
sort进阶(对象排序):1:数组排序
var points = [
{name:'KBC',data:9},
{name:'CBC',data:8},
{name:'BBC',data:6},
{name:'EBC',data:1},
{name:'MBC',data:5},
{name:'ABC',data:7}
];
points.sort(function(a, b){
return a.data - b.data
})
2,字符串排序 (如果不区分大小写就在sort方法name之后加上 .toUpperCase() 方 var points = [
1 2 3 4 5 6 7 8 9 | var points = [ <br> {name: 'KBC' ,data:9}, {name: 'CBC' ,data:8}, {name: 'BBC' ,data:6}, {name: 'EBC' ,data:1}, {name: 'MBC' ,data:5}, {name: 'ABC' ,data:7} ]; points.sort(function(a, b){ return a.name > b.name?1:-1 // return a.name.toUpperCase() > b.name.toUpperCase()?1:-1<br> }) |
2.快速排序
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | function quickSort(arr){ if (arr.length<=1){ // 长度小于等于1 返回自己 return arr } let centerIndex = Math.floor(arr.length/2) // 中间index let centerData = arr.splice(centerIndex,1)[0] // 中间index 对应的 之,并从arr中剔除 let letArry = [] let rightArry = [] for ( let i=0;i<arr.length;i++){ if (arr[i]<centerData){ // 小于中间值放左数组 否则放右数组 letArry.push(arr[i]) } else { rightArry.push(arr[i]) } } return quickSort(letArry).concat([centerData],quickSort(rightArry)) // 左数组快排后和中间值,右数组拼接 } let arr = [1,5,6,2,4,8,7,9,6,3,2,2,0] console.log(quickSort(arr)) |
3.冒泡排序
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | function maopao(arr){ for ( let i=0;i<arr.length-1;i++){ for ( let j=i;j<arr.length;j++){ if (arr[i]>arr[j]){ let changeData = arr[i] arr[i] = arr[j] arr[j] = changeData } } } return arr } let arr = [1,5,6,2,4,8,7,9,6,3,2,2,0] console.log(maopao(arr)) |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本