借助数组进行数据的排序

// 虽然简单但是有bug的说。。。只可远观不可


// 源
var arr = [4,5,3,2,5,6,7,8,8,9,2,5,1];
// 获取长度
var len = arr.length;
// 新建一个
var arr2 = new Array(len);
// 初始化为0
for(var i=0;i<len;i++){
  arr2[i] = 0;
}
// 如果出现了让它加1
for(var i=0;i<len;i++){
  arr2[arr[i]]++;
}

var arr3 = [];

// 从小到大排序
for(var i=0;i<len;i++){
  // 如果等于0说明没有出现这个数
  if(arr2[i]!=0){
    // 判断里面出现了几次,根据出现的次数添加
    for(var k=0;k<arr2[i];k++){
      arr3.push(i);
    }
  }
}
console.log(arr3); //[1, 2, 2, 3, 4, 5, 5, 5, 6, 7, 8, 8, 9]

// 清空数组
arr3.splice(0);

// 从大到小排序
for(var i=len-1;i>=0;i--){
    // 如果等于0说明没有出现这个数
  if(arr2[i]!=0){
    // 判断里面出现了几次,根据出现的次数添加
    for(var k=0;k<arr2[i];k++){
      arr3.push(i);
    }
  }
}
console.log(arr3); //[9, 8, 8, 7, 6, 5, 5, 5, 4, 3, 2, 2, 1]

  

原文地址:https://www.cnblogs.com/pssp/p/5653085.html