javascript數據結構之串的概念與用法分析
本文實例講述了javascript數據結構之串的概念與用法。分享給大家供大家參考,具體如下:
串是由零個或多個字符組成的有限序列。串中字符的個數稱為串的長度。
串中任意個連續(xù)的字符組成的子序列稱為該串的子串。包含子串的串相應地稱為主串。通常稱字符在序列中的序號為該字符在串中的位置。子串的首字符在主串中首次出現(xiàn)的位置定義為子串在主串中的位置。
串的邏輯結構和線性表十分相似,區(qū)別僅僅在于串的數據對象約束為字符集。然而兩者的基本操作有很大差別。線性表中,基本以單個元素來進行操作;而串中多半以串的整體也就是子串來作為操作對象。
JavaScript有很多串的方法嗎,具體的請查閱api。
https://developer.mozilla.org/en-US/
這里我們挑一個來看看,比如indexOf,該方法返回String對象內第一次出現(xiàn)子字符串位置。如果沒有找到子字符串,則返回-1。我們來模擬一下這個方法的實現(xiàn):
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<script type="text/javascript">
function index(a,b,pos){
//a為主串,b為要尋找的子串,pos為開始尋找的位置
if(pos>0){
var a_len=a.length,
b_len=b.length,
i=pos;
while(i<=a_len-b_len+1){
//從第i個位置取和子串長度相等的進行比較,如果沒有找到則繼續(xù)i+1
var c=a.substr(i,b_len);
if(c==b)
return i;
i++;
}
}
return false;
}
var a="abcdefg";
var b="def";
var c=index(a,b,1);
alert(c);//3
alert(a.indexOf(b,1));//3
</script>
</body>
</html>
這個思想其實很簡單,就是在主串中取從第i個字符起,長度和要尋找的串相等的子串進行比較,直到找到為止。所以說我們在運用一些原生的api時,如果能夠知道其實現(xiàn)的原理,就可以更好的駕馭它們。當然,該方法還可以改進,我在以后的文章中會介紹的。
更多關于JavaScript相關內容感興趣的讀者可查看本站專題:《JavaScript數據結構與算法技巧總結》、《JavaScript數學運算用法總結》、《JavaScript排序算法總結》、《JavaScript遍歷算法與技巧總結》、《JavaScript查找算法技巧總結》及《JavaScript錯誤與調試技巧總結》
希望本文所述對大家JavaScript程序設計有所幫助。
相關文章
靜態(tài)頁面實現(xiàn) include 引入公用代碼的示例
下面小編就為大家?guī)硪黄o態(tài)頁面實現(xiàn) include 引入公用代碼的示例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-09-09
js復制文本到粘貼板(Clipboard.writeText())
這篇文章主要介紹了js復制文本到粘貼板(Clipboard.writeText()),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-07-07

