前端会遇到的算法

1.判断一个单词是否是回文(比如 mamam、redivider)
function checkPalindrom(str) {  
    return str == str.split('').reverse().join('');
}
console.log(checkPalindrom('mamam'));  //true
console.log(checkPalindrom('guojing'));  //false
2.去掉一整型数组重复的值
比如输入: [1,13,24,11,11,14,1,2] 
输出: [1,13,24,11,14,2]
考察对Object的使用,利用key来进行筛选
const unique = function(arr) {  
    let hashTable = {};
    let data = [];
    for(let i=0,l=arr.length;i<l;i++) {
        if(!hashTable[arr[i]]) {
            hashTable[arr[i]] = true;
            data.push(arr[i]);
        }
    }
    return data
}
module.exports = unique;
3.统计一个字符串出现最多的字母
输入 : afjghdfraaaasdenas 
输出 : a
function findMaxDuplicateChar(str) {  
    if(str.length == 1) {
        return str;
    }
    let charObj = {};
    for(let i=0;i<str.length;i++) {
        if(!charObj[str.charAt(i)]) {
            charObj[str.charAt(i)] = 1;
        }else{
            charObj[str.charAt(i)] += 1;
        }
    }
    let maxChar = '',
        maxValue = 1;
    for(var k in charObj) {
        if(charObj[k] >= maxValue) {
            maxChar = k;
            maxValue = charObj[k];
        }
    }
    return maxChar;
}
module.exports = findMaxDuplicateChar;
4.排序算法
动画演示地址:http://math.hws.edu/eck/jsdemo/sortlab.html
function mySort(arr) { for(let i = 0,l=arr.length;i<l-1;i++) { for(let j = i+1;j<l;j++) { if(arr[i]>arr[j]) { let tem = arr[i]; arr[i] = arr[j]; arr[j] = tem; } } } return arr; } module.exports = mySort;
5.不借助临时变量,进行两个整数的交换
输入 a = 2, b = 4 
输出 a = 4, b =2
{
  b = b-a;
  a = b+a;
  b = a-b;          
}

斐波那契数列的曲线:0、1、1、2、3、5、8、13、21、34、……

6.使用canvas 绘制一个有限度的斐波那契数列的曲线
https://codepen.io/Jack_Pu/pen/LRaxZB
function getFibonacci(n) {  
    var fibarr = [];
    var i = 0;
    while(i<n) {
        if(i<=1) {
            fibarr.push(i);
        }else {
            fibarr.push(fibarr[i-1] + fibarr[i-2])
        }
        i++;
    }
    return fibarr;
}

 

参考:

http://web.jobbole.com/88471/

http://math.hws.edu/eck/jsdemo/sortlab.html(排序算法演示)

https://codepen.io/Jack_Pu/pen/LRaxZB(canvas绘制曲线)

 

posted @ 2018-09-01 18:00  我将枕中记忆抹去任岁月浮光掠影  阅读(273)  评论(0编辑  收藏  举报