此方法可以檢測(cè)你的字符串是否重復(fù),很好用,不多說(shuō)我們來(lái)看代碼
var jsha='jshajfhafhffkdddddddsdsfsdfdsfddddddddddz';
function uyt(list2){ // 函數(shù)和形參
var obj={},num =0, item = 0; //賦值一個(gè)數(shù)組和兩個(gè)數(shù),這個(gè)用處下面解釋
for(var i in list2){//for in 循環(huán)jsha里面的數(shù)
obj[list2[i]]? obj[list2[i]]+=1: obj[list2[i]]=1; //檢測(cè)obj里面的list[i]是否有重復(fù)的,有就加1沒(méi)有就等于1
}
for(var j in obj){ //遍歷obj里面的j也就是key值
if(obj[j]>num){//判斷obj里面j(key值)的數(shù)是否大于新的數(shù),大于的話就走這個(gè)程序
num=obj[j];//給num賦上obj里面key值數(shù)的值
item=j; //讓item等于里面的key
}
}
console.log(item,num)
return obj
}
console.log(uyt(jsha))
上面要注意的就是三目運(yùn)算符,這個(gè)地方容易出錯(cuò);
還有就是if判斷讓它里面的obj[j]重復(fù)和num作比較只要比他大就會(huì)讓num記錄下來(lái)這個(gè)數(shù)這塊很重要,
可以找出來(lái)它里面的最大值
//是否對(duì)稱
var sss='aadssdaa';//隨便打一個(gè)新的字符串
function oiu(list){//用一個(gè)函數(shù)把他封裝起來(lái)
if(sss.length%2 !=0){//用if對(duì)這個(gè)字符串進(jìn)行判斷,如果是基數(shù)直接返回
return false;
}
for(var i =0;i<list.length-1;i++){//用for循環(huán)這個(gè)字符串
if(list.charAt(i) !== list.charAt(list.length-1-i)){//如果前一個(gè)不等于后面的一項(xiàng)返回no,都相等的話則返回ok
return 'No';
}
}
return 'ok';
}
console.log(oiu(sss))
上面注意的是第一個(gè)if判斷如果他是奇數(shù)那就無(wú)法進(jìn)行對(duì)稱所以直接讓他返回就行了,
下面的if判斷通過(guò)charAt方法輸入下標(biāo)來(lái)找他的值,然后進(jìn)行前后是否相等的判斷