js如何查詢字元處中第一個不重複的字元
可能在實際功能有這樣的變態需求,就是獲取字串中第一個不重複的字元,之所以說變態因為需求比較特別,非常的少見,並不是難度變態,下面就通過程式碼例項介紹一下如何實現此功能。
程式碼如下:
[JavaScript] 純文字檢視 複製程式碼function firstUniqueChar(str){ var str=str||"", index = 0, k = "", _char = "", charMap = {}, result={name: "",index: str.length}; for(index=0;index<str.length;index++){ _char = str.charAt(index); if(charMap[_char] != undefined){ charMap[_char] = -1; } else{ charMap[_char] = index; } } for(k in charMap){ if(charMap[k]<0){ continue; } if(result.index>charMap[k]){ result.index = charMap[k]; result.name = k; } } return result.name; } var str="antzone"; console.log(firstUniqueChar(str));
上面的程式碼實現了我們的要求,下面介紹一下它的實現過程。
一.程式碼註釋:
1.function firstUniqueChar(str){},此函式實現了超找功能,引數是要查詢的字串。
2.var str=str||"",如果str為空則賦空值。
3.index = 0,for迴圈的時候作為字串中字元的索引。
4.k = "",宣告一個變數並賦初值為空,其實它是用來作為一個物件屬性。
5._char = "",宣告一個變數並賦初值為空,用來儲存字串指定索引位置的字元。
6.charMap = {},建立一個物件,後面詳細介紹它的作用。
7.result={name: "",index: str.length},建立一個物件。
8.for(index=0;index<str.length;index++){},遍歷字串中的每一個字元。
9. _char = str.charAt(index),獲取當前索引位置的字元。
10.if(charMap[_char] != undefined){
charMap[_char] = -1;
}charMap物件將字串中的字元作為屬性名稱。
判斷物件相應的屬性值是否已經存在,如果存在的話,那麼就說明這個字元已經重複了,然後將屬性值設定為-1。
11.else{charMap[_char] = index;},如果至此還沒有重複的話,就將屬性值設定為對應的索引。
12.for(k in charMap),遍歷charMap物件的每一個屬性。
13.if(charMap[k]<0){continue;},如果小於0的話,說明重複,跳過,繼續下一個迴圈。
14.if(result.index>charMap[k]){
result.index = charMap[k];
result.name = k;
},其實這個有點麻煩了,因為charMap的屬性是按照字元在字串中的先後順序排列的,那麼第一個大於0的屬性值對應的屬性就是要獲取的字元。15.return result.name,返回找到的字元。
二.相關閱讀:
1.charAt()函式可以參閱javascript charAt()一章節。
2.遍歷物件屬性可以參閱javascript for in例項程式碼一章節。
相關文章
- 字元流中第一個不重複的字元字元
- 劍指Offer 字元流中第一個不重複的字元字元
- 查詢字串中第一個非重複字元的3種方法字串字元
- 如何處理 MySQL 萬用字元的模糊查詢MySql字元
- Python中查詢字串某個字元最常用的方法!Python字串字元
- mybatis 對特殊字元的模糊查詢MyBatis字元
- ORACLE中查詢出姓名列中 含有非漢字的字元Oracle字元
- MySQL like查詢字元轉義遇到的坑MySql字元
- js全形字元轉為半形字元JS字元
- JavaScript刪除字串中重複字元JavaScript字串字元
- js視訊轉字元畫 —— 寫一個屬於自己的字元轉換器JS字元
- leedcode-字串中的第一個唯一字元字串字元
- 1202-字串中的第一個唯一字元字串字元
- 387. 字串中的第一個唯一字元字串字元
- Python字串刪除第一個字元常用的方法!Python字串字元
- 寫個方法,找出指定字串中重複最多的字元及其長度字串字元
- 查詢某欄位有特殊字元(PATINDEX函式)字元Index函式
- LeetCode-387-字串中的第一個唯一字元LeetCode字串字元
- 獲取字串中重複次數最多的字元字串字元
- js將陣列轉字元,字元轉回陣列JS陣列字元
- 原生JS去重(一)--兩種方法去掉重複字元JS字元
- JS RegExp 替換字元JS字元
- 第一個只出現一次的字元——Java字元Java
- JavaScript 刪除重複字元JavaScript字元
- LeetCode 387. 字串中的第一個唯一字元 (Java)LeetCode字串字元Java
- 遇到403 Forbidden ,伺服器端查詢後結果是http get查詢字串中包含非法字元ORB伺服器HTTP字串字元
- JAVA面試題筆試題-查詢一個字串不重複最長的串(個人方法)Java面試題筆試字串
- 「SAP技術」SAP業務操作查詢裡的萬用字元字元
- Excel 2010 SQL應用032 字元範圍的模糊匹配查詢ExcelSQL字元
- 求字串中不含重複字元的最長子串字串字元
- 2.刪除字串中的某個字元。(藉助字元陣列實現)字串字元陣列
- 文字中的特殊字元字元
- 面試有關字串中字元出現重複字元的面試問題,這裡都有了面試字串字元
- CSS段落首字元縮排兩個字元CSS字元
- LeetCode1002. 查詢常用字元(雜湊表、count)LeetCode字元
- 記錄一次在keil中,查詢ALIGN()括號裡任意字元,ALIGN(.*)字元
- JavaScript 刪除字串重複字元JavaScript字串字元
- LCR 016. 無重複字元的最長子串(中)字元
- 前端 JavaScript 獲取字串中重複次數最多的字元前端JavaScript字串字元