// 虽然简单但是有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]