前端算法及手写算法JavaScript

Posted Coding With you.....

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了前端算法及手写算法JavaScript相关的知识,希望对你有一定的参考价值。

一、手写算法

1.获取url中参数列表,保存为对象

function getUrlParam()  //获取url中参数列表,保存为对象
var url="http://jjhs/dddh?a=1&b=2&c=3&d=4";
var res=;
if(url.indexOf("?"!==-1))
    let parms=url.split("?")[1].split("&")    //url.subString(url.indexOf("?")+1)
    for(let i=0;i<parms.length;i++)
        res[parms[i].split("=")[0]]=parms[i].split("=")[1];
        console.log(parms[i].split("=")[0]);
    

return res;

2.判断字符串中出现次数最多的字符

function maxnum_reg(s)//判断字符串中出现次数最多的字符
    if(s.length===0 || s===null) return "";
   
    let max=0;
    let zifu="";
    let shuzu=[...new Set(s.split(""))];
    for(let i=0;i<shuzu.length;i++)
       if((s.match(new RegExp(shuzu[i],"g")) || []).length>max)  max=(s.match(new RegExp(shuzu[i],"g")) || []).length;
                zifu=shuzu[i];
       else if((s.match(new RegExp(shuzu[i],"g")) || []).length==max)//处理出现次数相同的词
            zifu=zifu+";"+shuzu[i];
            //zifu=`$zifu;$shuzu[i]`;
        
    
    console.log(zifu+"次数:"+max);





function maxnum(s)
    let res=;
    for(let i=0;i<s.split("").length;i++)
       if(!res[s.split("")[i]]) 
        res[s.split("")[i]]=1;
       
       else
        res[s.split("")[i]]++;
       
    
    let max=0;
    let max_w="";
    for(var tmp in res)
        if(res[tmp]>max)
            max=res[tmp];
            max_w=tmp;
        
        else if(res[tmp]==max)
            max_w=max_w+":"+tmp;
        
    
    console.log(max_w+",max:"+max)

3.将数字转换成RMB形式:三个数字就用逗号隔开

//将数字转换成RMB形式:三个数字就用逗号隔开
function toRMB(n)
    //先将数字转化为字符串,然后从后往前满三个并且不是第一个字符之前就加一个逗号   
    let res="";
    let str=n+"";
    for(let i=1;i<=str.length;i++)
        res=[...str][str.length-i]+res;
        if(i%3===0 && str.length!=i)res=","+res;
    
    console.log(res);

4.深浅拷贝

function deepCopy(obj)//深浅拷贝实现
    if(!obj || typeof obj !=="object")return obj;
    let newResult=Array.isArray(obj)?[]:;
     
    // for(let i=0;i<obj.length;i++)   这种循环是获取不到的
    //     //newResult[i]=typeof obj[i]==="object"?deepCopy(obj[i]):obj[i];
    //     newResult[i]= deepCopy(obj[i]) ;
    // 
    for(let pro in obj)
        if(obj.hasOwnProperty(pro))
            newResult[pro]=deepCopy(obj[pro]);
            //浅拷贝的话只是复制了引用地址,因此newResult[pro]=deepCopy(obj[pro]);改为newResult[pro]=obj[pro];即可
        
    
    return newResult;

5.死磕 36 个 JS 手写题(搞懂后,提升真的大) - 掘金

二、leecode

以上是关于前端算法及手写算法JavaScript的主要内容,如果未能解决你的问题,请参考以下文章

前端面试题及答案整理(转)

前端面试题及答案整理(转)

使用K近邻算法实现手写体识别系统

机器学习及与智能数据处理之降维算法PCA及其应用手写识别自定义数据集

机器学习KNN算法实现手写板字迹识别

生成对抗网络(GAN)详细介绍及数字手写体生成应用仿真(附代码)