首页 > 代码库 > 前端常见算法整理

前端常见算法整理

1.回文数

function isPalindromic(str){
  return str == str.spilt("").reverse().join("");
}

2.数组去重

function unique(arr){
    var tempArr = [];
    for(var i = 0; i < arr.length; i++;){
        if(tempArr.indexOf(arr[i]) == -1){
            tempArr.push(arr[i]);
        }
    }      
    return tempArr;  
}

3.字符串中出现最多次数的字符和次数

 1 function maxCount(str){
 2         var obj = {};
 3         for(var i = 0; i < str.length; i++){
 4             var char = str.charAt(i);
 5             if(!obj[char]){
 6                 obj[char] =1;
 7             }else{
 8                 obj[char]++;
 9             }
10         }
11         console.log(obj)
12         var max = 0;
13         for(var key in obj){
14             if(max < obj[key]){
15                 max = obj[key];
16                 console.log("出现最多字符是:" + key)
17                 console.log("出现的次数:" + max)
18             }
19         }
20     }

4.冒泡排序

 1 function bubbleSort(arr){
 2     for(var i = 0; i< arr.length; i++){
 3         for(var j = i + 1; j < arr.length; j++){
 4             if(arr[i] > arr[j]){
 5                 var temp = arr[i];
 6                 arr[i] = arr[j];
 7                 arr[j] = temp;
 8             }
 9         }
10     }
11     return arr;
12 }

5.不利用中间变量交互两个

function swap(a,b){
    b = b - a;
    a = a + b;//此时a=b
    b = a - b;
    return [a,b];
}

6.斐波那契数组

 1     function fibonacci(n){
 2         var fibArr = [];
 3         var i = 0;
 4         while(i<n){
 5             if(i<=1){
 6                 fibArr.push(i);
 7             }else{
 8                 fibArr.push(fibArr[i-1] + fibArr[i-2]);
 9             }
10             i++;
11         }
12         return fibArr;
13     }

7.生成随机长度字符串

 1 function randomStr(len) {  
 2   var str = ‘abcdefghijklmnopqrstuvwxyz9876543210‘;
 3   var tmp = ‘‘,
 4       i = 0,
 5       l = str.length;
 6   for (i = 0; i < n; i++) {
 7     tmp += str.charAt(Math.floor(Math.random() * l));
 8   }
 9   return tmp;
10 }

还有一些其他算法,先总结到这

 

前端常见算法整理