javascript獲取字串中第一個不重複字元程式碼例項
本章節介紹一下如何利用原生的javascript獲取字串中,第一個不重複的字元。
這樣的需求不知道在實際應用中是否使用頻繁,不過也可以作為一個編碼思路去借鑑一下,或許能夠在其他功能的實現中帶來一定的啟發作用,下面直接看程式碼例項:
[JavaScript] 純文字檢視 複製程式碼function firstUniqueChar(str){ var str = str || "", i = 0, k = "", _char = "", charMap = {}, result = {name: "",index: str.length}; for(i=0;i<str.length;i++){ _char = str.charAt(i); if(charMap[_char] != undefined){ charMap[_char] = -1; } else{ charMap[_char] = i; } } 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 is a good website,do you know?"; console.log(firstUniqueChar(str));
上面的程式碼實現了我們的要求,能夠獲取指定字串中,第一個不重複的字元,下面介紹一下它的實現過程。
一.程式碼註釋:
1.function firstUniqueChar(str){},此方法實現了查詢提取功能,引數就是目標字串。
2.var str = str || "",如果傳遞了str引數則使用str,否則賦值為空字串。3.i = 0,此變數用來所謂遍歷字串的索引值。
4.k = "",作為對映表的key,其實就是物件直接量的屬性。
5.charMap = {},存放字串一些相關資訊的對映表。
6.result = {name: "",index: str.length},存放最終結果的對映表,也就是物件直接量。
7.for(i=0;i<str.length;i++){
_char = str.charAt(i);
if(charMap[_char] != undefined){
charMap[_char] = -1;
}
else{
charMap[_char] = i;
}
},此程式碼會遍歷字串中的每一個字元,然後和對映表進行比對嗎,對映表的屬性是字串中的字元,如果已經存在相關屬性,那麼說明字元是重複的,那麼就將屬性值設定為-1,如果不存在,那麼就新增對應的屬性,並將屬性值設定為對應字元的索引。
8.for(k in charMap){
if(charMap[k]<0){
continue;
}
if(result.index > charMap[k]){
result.index = charMap[k];
result.name = k;
}
}遍歷對映表(物件直接量),如果屬性值小於0,那麼就說明它是重複的,那麼跳出本次迴圈。
如果不小於0,說明不重複,if(result.index > charMap[k]){}的作用是找出索引值最小的那個,不少朋友認為這裡的判斷毫無必要,認為第一個charMap[k]不小於0的K就是要查詢的元素,並非如此,可以參閱程式自動新增的屬性排序並非按照新增的順序一章節。
二.相關閱讀:
1.charAt()方法可以參閱javascript charAt()一章節。
2.物件直接量可以參閱js物件直接量簡單介紹一章節。
相關文章
- 字元流中第一個不重複的字元字元
- 劍指Offer 字元流中第一個不重複的字元字元
- JavaScript取餘數程式碼例項JavaScript
- 前端 JavaScript 獲取字串中重複次數最多的字元前端JavaScript字串字元
- 獲取倒數第幾個元素程式碼例項
- JavaScript刪除字串中重複字元JavaScript字串字元
- JavaScript陣列中隨機取出不重複項JavaScript陣列隨機
- JavaScript 刪除字串重複字元JavaScript字串字元
- 查詢字串中第一個非重複字元的3種方法字串字元
- 獲取字串中重複次數最多的字元字串字元
- JavaScript讀取文字檔案內容程式碼例項JavaScript
- JavaScript 點選複製選中文字程式碼例項JavaScript
- JavaScript in運算子程式碼例項JavaScript
- JavaScript獲取字串指定索引位置字元JavaScript字串索引字元
- 刪除字串中的html標籤程式碼例項字串HTML
- CSS匹配第一個li元素程式碼例項CSS
- 獲取一個字串中出現最多的字元和他的個數字串字元
- JavaScript 阻止事件冒泡程式碼例項JavaScript事件
- JavaScript運動框架程式碼例項JavaScript框架
- React獲取元件例項React元件
- JavaScript獲取給定字元的unicodeJavaScript字元Unicode
- JavaScript 表單驗證程式碼例項JavaScript
- JavaScript陣列合並程式碼例項JavaScript陣列
- JavaScript倒數計時程式碼例項JavaScript
- JavaScript 獲取主機名程式碼JavaScript
- javascript將字串中的多個空格替換為一個空格的正則例項JavaScript字串
- JavaScript刪除字串中的指定字元JavaScript字串字元
- JavaScript中常用的事件程式碼及例項JavaScript事件
- JavaScript刪除元素節點程式碼例項JavaScript
- 正規表示式獲取兩個字元之間的字串資訊字元字串
- 獲取C/C++字串、字元陣列長度C++字串字元陣列
- 獲得String字串中某個字元出現的次數字串字元
- 資訊學奧賽複賽複習01-CSP-J2019-01-字元、字元陣列、字串、string、字串讀取字元陣列字串
- 前端學習程式碼例項-JavaScript阻止事件冒泡前端JavaScript事件
- 1202-字串中的第一個唯一字元字串字元
- leedcode-字串中的第一個唯一字元字串字元
- 387. 字串中的第一個唯一字元字串字元
- 結合例項學習|字元編碼和解碼字元
- 127 PHP獲取網頁標題的3種實現方法程式碼例項PHP網頁