数组的sort排序

基本用法

var arr = [1,6,2,4,7,2]
arr.sort()
console.log(arr)    //[1, 2, 2, 4, 6, 7]  默认是升序记住啦!
arr.reverse()
console.log(arr)   //[7, 6, 4, 2, 2, 1]   这个不是排序,这个是倒叙的文学意义的

准备手动实现排序:
var arr= [3,5,1,2,9,5]
 
function min(arr){
   var min = arr[0]
  var index = 0   //出错点,我开始觉得没必要设置值,结果后面当第一项是最小值时,出错了,undefined
  if(arr.length === 1) return
  for(var i =1;i<arr.length;i++){
   
    if(min >arr[i]){
      min = arr[i]
      index = i
    }
   
  }
  console.log(min,index,'haha')
  return index
}

function sortn(arr){
  var newarr = []
  var len = arr.length -1      //出错点,后续数组变化了,但是循环的次数是不能变的
  for(var x=0;x<len;x++){
     var ind = min(arr)
     //console.log('r',ind)
     newarr.push(arr[ind])
     // console.log('r',ind)
     arr.splice(ind,1)
     console.log(arr,'ah',newarr)
  }
  newarr.push(arr[0]  )    //这里按说很简单的操作的,不知道怎么了,newarr.concat(arr)  不行,
//后来知道是得到了新数组,要如此:arr= newarr.concat(arr)
  console.log(newarr)
  return arr = newarr
  
  
}
sortn(arr)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容