此方法可以检测你的字符串是否重复,很好用,不多说我们来看代码
var jsha='jshajfhafhffkdddddddsdsfsdfdsfddddddddddz';
function uyt(list2){ // 函数和形参
var obj={},num =0, item = 0; //赋值一个数组和两个数,这个用处下面解释
for(var i in list2){//for in 循环jsha里面的数
obj[list2[i]]? obj[list2[i]]+=1: obj[list2[i]]=1; //检测obj里面的list[i]是否有重复的,有就加1没有就等于1
}
for(var j in obj){ //遍历obj里面的j也就是key值
if(obj[j]>num){//判断obj里面j(key值)的数是否大于新的数,大于的话就走这个程序
num=obj[j];//给num赋上obj里面key值数的值
item=j; //让item等于里面的key
}
}
console.log(item,num)
return obj
}
console.log(uyt(jsha))
上面要注意的就是三目运算符,这个地方容易出错;
还有就是if判断让它里面的obj[j]重复和num作比较只要比他大就会让num记录下来这个数这块很重要,
可以找出来它里面的最大值
//是否对称
var sss='aadssdaa';//随便打一个新的字符串
function oiu(list){//用一个函数把他封装起来
if(sss.length%2 !=0){//用if对这个字符串进行判断,如果是基数直接返回
return false;
}
for(var i =0;i<list.length-1;i++){//用for循环这个字符串
if(list.charAt(i) !== list.charAt(list.length-1-i)){//如果前一个不等于后面的一项返回no,都相等的话则返回ok
return 'No';
}
}
return 'ok';
}
console.log(oiu(sss))
上面注意的是第一个if判断如果他是奇数那就无法进行对称所以直接让他返回就行了,
下面的if判断通过charAt方法输入下标来找他的值,然后进行前后是否相等的判断