- 快速排序
function quickSort(arr){
if(arr.length <= 1){
return arr;
}
var middleNumber = Math.floor(arr.length/2);
var middleTerm = arr.splice(middleNumber,1)[0];
var left = [];
var right = [];
for(var i = 0; i < arr.length; i++){
if(arr[i] < middleTerm){
left.push(arr[I])
}else{
right.push(arr[i])
}
}
return quckSort(left).concat(middleTerm,quckSort(right))
}
- 冒泡排序
function propagationSort(arr){
for(var i = 0; i < arr.length - 1; i++){
for(var j = 0; j < arr.length -1 - i; j++){
if(arr[j] > arr[j+1]){
var temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
return arr
}
- 数组去重
function unique(arr){
var result = [];
for(var i = 0; i < arr.length; i++){
if(result.indexOf(arr[i]) === -1){
result.push(arr[i])
}
}
return result
}
function unique(arr){
return Array.from(new Set(arr))
}
- 斐波那契数列
function fb(n){
if(n < 0){
return 0;
}
if(n === 1 || n === 2){
return 1 }
return fb(n - 1) + fb(n - 2)
}
function fb(n){
if(n < 0){
return 0
}
if( n === 1 || n===2){
return 1
}
var arr = [1,1]
for( var i = 2; i < n; i++){
arr[i] = arr[i - 1] + arr[i - 2];
}
return arr[n - 1]
}
- 对象的深复制
function deepclone(obj){
let arr = Array.isArray(obj)?[]:{};
for(let key in obj){
if(obj.hasOwnProperty(key)){
if(typeof obj[key] === 'object'){
arr[key] = deepclone(obj[key])
}else{
arr[key] = obj[key]
}
}
}
return arr
}