sort()
- sort() 方法用于对数组的元素进行排序;
- sort() 方法默认将按字母和升序将值作为字符串进行排序;
对数字进行排序
//return < 0 (保持不变)
//return > o (交换次序)
const arr1 = [3,5,1,7,4,8]
arr1.sort((a, b) => a - b)
对字母进行排序
//根据字符串Unicode码点
const arr2 = ['h','e','l','l','o']
arr2.sort()
在实际中的使用
冒泡排序
function bubbleSort(arr) {
let len = arr.length
for(let i = 0; i < len - 1; i++) {
for(let j = 0; j < len -1; j++) {
if(arr[j] > arr[j + 1]) {
let num = arr[j]
arr[j] = arr[j + 1]
arr[j + 1] = num
}
}
}
return arr
}
按数组元素出现的频率排序
//说明:此方法不适用数组元素为引用类型的情况,因为js中对象的键只能为字符串
//arr:传入的数组
//length:返回出现次数排序在前length的
//type:升序/降序
function getCount(arr,length,type) {
let obj = {}, arr1=[], k
for (let i = 0, len = arr.length; i < len; i++){
k = arr[i]
if(obj[k]) obj[k]++;
else obj[k] = 1
}
for (let o in obj) {
arr1.push({ el: 0, count: obj[o] })
}
arr1.sort(function (n1, n2) {
return n2.count - n1.count
})
if (type === 1) {
arr1 = arr1.reverse()
}
let length = length || arr1.length;
return arr1.slice(0, length)
}
标签:sort,arr,频率,length,let,arr1,排序
From: https://www.cnblogs.com/rain111/p/17177988.html