1,es6里面Math.max(…Arr)实现取最大值通过,闭包和自函数实现,实现方法如下:
var arr = [23, 45, 40, 30, 12];
var func = (datas) => {
var result=[];
return function deal(data){
let len=data.length
if(len>1){
var max = Math.max(...data);
var index = data.indexOf(max)
result.push(max);
data.splice(index,1);
deal(data)
}else{
result.push(...data)
}
return result
}(datas)
// return deal(datas)
};
func(arr);
// (5) [45, 40, 30, 23, 12]
2,冒泡算法
function result(arr){
for(var i=0,len=arr.length;i<len;i++){
for(var j=0;j<arr.length;j++){
let tem=arr[i]>arr[j]?arr[j]:arr[i]
arr[j]=arr[i]>arr[j]?arr[i]:arr[j]
arr[i]=tem
}
}
return arr
}
result([4, 5, 1, 3]) // 5,4,3,1