// 手写快排var arr =[5,11,23,54,0,22,12,43,9]var res =quickSort(arr)functionquickSort(arr){if(arr.length<=1)return arr;var num = arr.shift()var left =[]var right =[]
arr.forEach(item=>{if(item<=num) left.push(item)
else right.push(item)})var result =quickSort(left).concat(num,quickSort(right))
rturn result
}
// 实现一个flatten方法(数组拍平)let array1 =[1,[2,3],[4,[5,6]]]let result =[]flatten(array1)functionflatten(arr){// 方法1let result = arr.toString()return result.split(',')}functionflatten(arr){for(item of arr){if(Array.isArray(item))flatten(item)else result.push(item)}return result
}
// 求数组最大子序列和functioncontMax(array){if(array.length==0)return array
var sum = array[0]var maxSum = array[0]for(let i=1; i<array.length;i++){
sum = Math.max(sum+array[i], array[i])
maxSum = Math.max(sum, maxSum)}return maxSum
}
// 浅拷贝functionshallowCopy(src){var dst ={}for(key in src){if(src.hasOwnProperty(key))
dst[key]= src[key]}return dst
}
// 深拷贝functioncheckType(target){returnObject.prototype.toString.call(8,-1);}functiondeepCopy(target){let result
if(checkType(target)=='Array'){
result=[]}elseif(checkType(target)=='Object'){
result={}}elsereturn target
for(let i in target){let value = target[i]if(checkType(value)=='Array'||checkType(value)=='Object'){
result[i]=deepClone(value)}else result[i]=value
}return result
}