码迷,mamicode.com
首页 > 编程语言 > 详细

常见算法

时间:2017-08-16 23:12:05      阅读:281      评论:0      收藏:0      [点我收藏+]

标签:function   check   color   set   对象   element   数组元素   test   let   

判断一个单词是否是回文?

var str="mamam";
function check(str){
    return str== str.split(‘‘).reverse().join(‘‘);
}
check(str)  //true

去掉一组整型数组重复的值

利用一个空对象和空数组,遍历数组元素,每次判断对象中是否存在这个值,如果不存在,将obj[x]设置为1,将这个值push到空数组

function delSame(arr){
    var obj={},
        res=[];
    arr.forEach(function(x){
        if(!obj[x]){
            obj[x]=1;
            res.push(x);
        }
    })
    return arr;
}

ES6的方法

let delSame = arr => Array.from(new Set(arr))

统计一个字符串出现最多的字母

var findMax= str =>{
    let obj={},
        max=0,
        char=‘‘;
    for(let i=0;i<str.length;i++){
        if(!obj[str[i]]){
            obj[str[i]]=1;
        }else{
            obj[str[i]]++;
        }
    }

    for(let k in obj){
        if(obj[k]>max){
            max=obj[k];
            char=k;
        }
    }

    return `max is ${max} , char is ${char}`
}

借助临时变量,进行两个整数的交换

//变量的解构赋值
var  a = 2, b = 4;
let swap=(a,b)=>[a,b]=[b,a]

swap(a,b)//[4,2]

找出下列正数组的最大差值比如:

输入 [10,5,11,7,8,9]

输出 6

var findMaxGap= arr=>{
    let res=[];
    for(var i=0;i<arr.length-1;i++){
        for(var j=i+1;j<arr.length;j++){
            var gap=Math.abs(arr[i]-arr[j]);
            if(res.indexOf(gap)==-1){
                res.push(gap);
            }
        }
    }
    return res.sort((a,b)=> a-b).pop();
}

findMaxGap([10,5,11,7,8,9])

随机生成指定长度的字符串

function random(n){
    var str=‘abcdefghijklmnopqrstuvwxyz123456789‘,
        res=‘‘,
        l=str.length;
    for(var i=0;i<n;i++){
        res+=str.charAt(Math.floor(Math.random()*l))
    }
    return res;
}

实现类似getElementsByClassName 的功能

function queryClassName(node, name) {  
  var starts = ‘(^|[ \n\r\t\f])‘,
       ends = ‘([ \n\r\t\f]|$)‘;
//包含四种情况,单个单词,首单词,中间单词,微单词。
var array = [], regex = new RegExp(starts + name + ends),
//找个这个节点下的所有元素,遍历这个类数组,如果test符合,就push到新的数组,最后返回这个数组。 elements
= node.getElementsByTagName("*"), length = elements.length, i = 0, element; while (i < length) { element = elements[i]; if (regex.test(element.className)) { array.push(element); } i += 1; } return array; }

 

常见算法

标签:function   check   color   set   对象   element   数组元素   test   let   

原文地址:http://www.cnblogs.com/t1amo/p/7376260.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!