前端算法及手写算法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的主要内容,如果未能解决你的问题,请参考以下文章