1、驼峰转换
<script>
/*
var s1 = "get-element-by-id"
转化为 getElementById
*/
//第一种方式
functionchange(str){
vararr=str.split("-");
for(vari=1;i<=arr.length-1;i++){
arr[i]=arr[i].charAt(0).toUpperCase()+arr[i].substring(1);
}
returnarr.join("")
}
vars1="get-element-by-id";
console.log(change(s1))
//第二种方式
functionfun(str){
returnstr.replace(/-\w/g,function(s){
returns.slice(1).toUpperCase()
})
}
console.log(fun(s1))
</script>
2、解析url的params为对象
<script>
/*
let url = 'http://www.domain.com/?user=anonymous&id=123&id=456&city=%E5%8C%97%E4%BA%AC&enabled';
结果
{ user: 'anonymous',
id: [ 123, 456 ], // 重复出现的 key 要组装成数组,能被转成数字的就转成数字类型
city: '北京', // 中文需解码
enabled: true, // 未指定值得 key 约定为 true
}
*/
functionchange(url){
vararr=url.split("?")
vararr0=arr[1].split("&")
//定义一个新对象
varobj={}
//遍历arr0
arr0.forEach((item,key)=>{
vararrobj=item.split("=")
if(arrobj[1]){
arrobj[1]=decodeURIComponent(arrobj[1])
//获取到对象所有的键
varkeys=Object.keys(obj);
//console.log(keys)
//存放数据之前应该检测是否存在键值
varindex=keys.indexOf(arrobj[0]);
if(index==-1){
//直接存入
obj[arrobj[0]]=arrobj[1];
}else{
//如果存在情况下 我们要把之前的值拿到 然后拼上现在的值 做成一个数组放里面
varstr=(obj[keys[index]]+","+arrobj[1]).split(",")
//var newarr=[obj[keys[index]],arrobj[1]];
obj[arrobj[0]]=str;
}
}else{
obj[arrobj[0]]=true;
}
})
console.log(obj)
}
leturl='http://www.domain.com/?user=anonymous&id=123&id=456&city=%E5%8C%97%E4%BA%AC&enabled&user=zhangxiaosan&id=789&id=112&flag=false';
change(url)
</script>
查找字符串中出现最多的字符和个数
例: abbcccddddd -> 字符最多的是d,出现了5次
<script>
functionmore(str){
//第一步 给它转数组
vararr=str.split("");
//定义一个对象 {字符:次数}
varobj={}
for(vari=0;i<=arr.length-1;i++){
if(obj[arr[i]]){
obj[arr[i]]++
}else{
obj[arr[i]]=1
}
}
//寻找对象里面的最大值
varmax=1;
vark;
//遍历对象 判断 如果对象的值大于max 给max重新赋值
for(variinobj){
if(obj[i]>max){
max=obj[i]
k=i;
}
}
return"出现次数最多的字符是"+k+"出现的次数为"+max;
}
letstr="abcabcabcbbbbbbbbbbccccc";
console.log(more(str))
</script>
实现千隔符号
// 保留三位小数 parseToMoney(1234.56); // return '1,234.56' parseToMoney(123456789); // return '123,456,789' parseToMoney(1087654.321); // return '1,087,654.321'
<script>
varnum=1234567
varnum1=12345678.789
functionchange(number){
//用.分割为小数和整数
vararr=number.toString().split(".")
//把arr[0]转换为数组并且翻转
vararr1=arr[0].split("").reverse();
//定义一个新数组用来存放改变后的数据
varnewarr=[]
arr1.forEach((item,key)=>{
if(key%3==0&&key!=0){
newarr.push(",")
}
newarr.push(item)
})
varnewstr=newarr.reverse().join("")
if(arr[1]){
returnnewstr+"."+arr[1]
}else{
returnnewstr;
}
}
console.log(change(num))
console.log(change(num1))
</script>
网友评论