字符串的對(duì)稱和重復(fù)的檢測(cè)方法

此方法可以檢測(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)行前后是否相等的判斷

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容