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 字元流中第一個不重複的字元字元
- 《劍指offer》:[55]字元流中第一個不重複的字元字元
- 查詢字串中第一個非重複字元的3種方法字串字元
- javascript獲取字串中第一個不重複字元程式碼例項JavaScript字串字元
- js 字串中取得第一個字元和最後一個字元JS字串字元
- 如何處理 MySQL 萬用字元的模糊查詢MySql字元
- js查詢包含字元最多的單詞的字元長度JS字元
- js刪除字串的第一個字元JS字串字元
- js查詢字串中字元最多的單詞JS字串字元
- 查詢檔案中的控制字元(轉)字元
- Python中查詢字串某個字元最常用的方法!Python字串字元
- JavaScript隨機不重複的字元組成新的字串JavaScript隨機字元字串
- 查詢字串中連續出現的字元字串字元
- css如何設定字串中第一個字元的樣式CSS字串字元
- mybatis 對特殊字元的模糊查詢MyBatis字元
- JavaScript統計字串中重複字元的個數JavaScript字串字元
- 字串查詢之字元次數字串字元
- js如何將字串中的字元位置倒轉JS字串字元
- js如何換掉字串中的全部指定字元JS字串字元
- js如何將字串中的字元逐字輸出JS字串字元
- Hibernate通過SQL查詢常量時只能返回第一個字元的解決方法SQL字元
- ORACLE中查詢出姓名列中 含有非漢字的字元Oracle字元
- 查詢語句中escape的轉義字元字元
- (字串雜湊表)找到字串中不重複出現字元的最長子串長度字串字元
- 字串本身重複字元的檢查辦法字串字元
- MySQL like查詢字元轉義遇到的坑MySql字元
- JavaScript刪除字串中重複的字元JavaScript字串字元
- js如何判斷字串中是否含有指定字元JS字串字元
- vim下處理文件中的 字元字元
- JavaScript刪除字串中重複字元JavaScript字串字元
- 387. 字串中的第一個唯一字元字串字元
- ASP.NET從字串中查詢字元出現次數的方法ASP.NET字串字元
- js字串中替換指定的的字元JS字串字元
- js如何使用指定字元分割字串JS字元字串
- js全形字元轉為半形字元JS字元
- js如何實現將字串中的字元順序翻轉JS字串字元
- leedcode-字串中的第一個唯一字元字串字元