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物件直接量簡單介紹一章節。
相關文章
- javascript刪除字串重複字元程式碼例項JavaScript字串字元
- 字元流中第一個不重複的字元字元
- js獲取指定位數不重複隨機數程式碼例項JS隨機
- javascript生成不重複隨機數程式碼例項JavaScript隨機
- JavaScript獲取星期程式碼例項JavaScript
- 劍指Offer 字元流中第一個不重複的字元字元
- js如何查詢字元處中第一個不重複的字元JS字元
- 《劍指offer》:[55]字元流中第一個不重複的字元字元
- js不重複抽獎效果程式碼例項JS
- javascript獲取視窗大小例項程式碼JavaScript
- javascript獲取主機域名程式碼例項JavaScript
- javascript獲取元素封裝程式碼例項JavaScript封裝
- javascript獲取url引數程式碼例項JavaScript
- js獲取字串中指定位置字元程式碼例項JS字串字元
- js獲取字串指定位置字元效果程式碼例項JS字串字元
- javascript過濾字串中特殊程式碼例項JavaScript字串
- JavaScript隨機不重複的字元組成新的字串JavaScript隨機字元字串
- javascript設定或者獲取cookie程式碼例項JavaScriptCookie
- javascript獲取本機ip地址程式碼例項JavaScript
- javascript獲取指定元素父元素程式碼例項JavaScript
- javascript獲取元素的順序程式碼例項JavaScript
- javascript獲取li元素內容程式碼例項JavaScript
- 使用js刪除字串中的最後一個字元例項程式碼JS字串字元
- js刪除字串中最後一個字元程式碼例項JS字串字元
- 獲取小數點後面第一個數字程式碼例項
- javascript獲取字串的hash值簡單程式碼例項JavaScript字串
- js生成不重複數字陣列程式碼例項JS陣列
- javascript如何獲取連結引數程式碼例項JavaScript
- javascript獲取url連結引數例項程式碼JavaScript
- javascript獲取和刪除指定cookie程式碼例項JavaScriptCookie
- javascript設定和獲取cookie值程式碼例項JavaScriptCookie
- javascript獲取視訊播放時間程式碼例項JavaScript
- javascript擷取字串程式碼例項JavaScript字串
- JavaScript統計字串中重複字元的個數JavaScript字串字元
- js隨機取出陣列中不重複值元素程式碼和例項JS隨機陣列
- 前端 JavaScript 獲取字串中重複次數最多的字元前端JavaScript字串字元
- javascript字串操作程式碼封裝程式碼例項JavaScript字串封裝
- JavaScript刪除字串中重複字元JavaScript字串字元