1.给定一个数字,返回结果为每三个数加一个逗号,比如100000,返回结果为100,000
function toThousands(number){
numArr = number.toString().split('')
let counter = 0
const arr = []
numArr.forEach((item,index) => {
counter++
counter % 3 == 0 && index !== numArr.length-1 ? arr.push(item,',') : arr.push(item)
})
return arr.join('')
}
2.给定一个字符串,输出不出现重复字符的最大长度
// 滑动窗口
// 设置左右两个指针,右指针一直向右扩张,当不满足条件时,左边指针开始收缩,直到再次满足条件,之后右指针继续扩张
function lengthOfLongestSubstring (s) {
let count=0;
let set=new Set();
//左指针用来收缩窗口
let left=0;
//右指针用来扩张窗口
let right=0;
while(left<s.length){
//如果不重复,就不断扩张窗口,元素添加到set中
while(right<s.length&&!set.has(s[right])){
set.add(s[right]);
right++;
}
//元素重复了,先记录子串长度,然后收缩窗口
count=Math.max(count,right-left);
//收缩窗口
set.delete(s[left]);
left++;
}
return count;
}
3.给定一个字符串,输出字符串中出现最多的字符和次数
function maxLetter(str){
var obj = {}
for(let i = 0; i < str.length; i++){
if(!obj.hasOwnProperty(str[i])){
obj[str[i]] = 1
}else{
obj[str[i]]++
}
}
let maxKey,maxNumber = 0
for(let key in obj){
if(maxNumber < obj[key]){
maxNumber = obj[key]
maxKey = key
}
}
return `最大的字符是${maxKey},出现的次数为${maxNumber}`
}
4.把url地址栏中的参数保存到对象中并输出这个对象
function getUrlParams(url){
const Params = {}
if(url.indexOf('?')>0){//判断是否有qurey
let parmas = url.slice(url.indexOf('?')+1)//截取出query
const paramlists = parmas.split('&')//分割键值对
for (const param of paramlists) {
let a = param.split('=')
Object.assign(Params,{[a[0]]:a[1]})//将键值对封装成对象
}
}
return Params
}