vue实现数组排序,常⽤的⼏种⽅法总结⼀下js常⽤的排序,不然⽼是不到,满⾜开发使⽤就⾏了
1,sort排序
sort常规使⽤
var arry = [9,5,6,7,5,6,3,1,0]
arry.sort() // [0, 1, 3, 5, 5, 6, 6, 7, 9]
var arry = ['CBC','BBC','DBC','ABC','KBC','EBC','MBC']
arry.sort() // ['ABC', 'BBC', 'CBC', 'DBC', 'EBC', 'KBC', 'MBC']
注意:sort 默认会使⽤字符串的第⼀个字符来排序,当⼀个相等时,使⽤第⼆个以此类推,所以 ‘10’ ⼩于 ‘8’
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 = [
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.name > b.name?1:-1 // return UpperCase() > UpperCase()?1:-1
})
2.快速排序
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])
sort命令排序}
}
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.冒泡排序
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))
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论