亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

javascript數(shù)據(jù)結(jié)構(gòu)之串的概念與用法分析

 更新時(shí)間:2017年04月12日 10:05:27   作者:布瑞澤的童話  
這篇文章主要介紹了javascript數(shù)據(jù)結(jié)構(gòu)之串的概念與用法,簡單講述了串的概念、功能并結(jié)合實(shí)例形式分析了基于javascript實(shí)現(xiàn)串的遍歷、比較、查找等相關(guān)操作技巧,需要的朋友可以參考下

本文實(shí)例講述了javascript數(shù)據(jù)結(jié)構(gòu)之串的概念與用法。分享給大家供大家參考,具體如下:

串是由零個(gè)或多個(gè)字符組成的有限序列。串中字符的個(gè)數(shù)稱為串的長度

串中任意個(gè)連續(xù)的字符組成的子序列稱為該串的子串。包含子串的串相應(yīng)地稱為主串。通常稱字符在序列中的序號(hào)為該字符在串中的位置。子串的首字符在主串中首次出現(xiàn)的位置定義為子串在主串中的位置。

串的邏輯結(jié)構(gòu)和線性表十分相似,區(qū)別僅僅在于串的數(shù)據(jù)對(duì)象約束為字符集。然而兩者的基本操作有很大差別。線性表中,基本以單個(gè)元素來進(jìn)行操作;而串中多半以串的整體也就是子串來作為操作對(duì)象。

JavaScript有很多串的方法嗎,具體的請(qǐng)查閱api。
https://developer.mozilla.org/en-US/

這里我們挑一個(gè)來看看,比如indexOf,該方法返回String對(duì)象內(nèi)第一次出現(xiàn)子字符串位置。如果沒有找到子字符串,則返回-1。我們來模擬一下這個(gè)方法的實(shí)現(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個(gè)位置取和子串長度相等的進(jìn)行比較,如果沒有找到則繼續(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>

這個(gè)思想其實(shí)很簡單,就是在主串中取從第i個(gè)字符起,長度和要尋找的串相等的子串進(jìn)行比較,直到找到為止。所以說我們?cè)谶\(yùn)用一些原生的api時(shí),如果能夠知道其實(shí)現(xiàn)的原理,就可以更好的駕馭它們。當(dāng)然,該方法還可以改進(jìn),我在以后的文章中會(huì)介紹的。

更多關(guān)于JavaScript相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript數(shù)學(xué)運(yùn)算用法總結(jié)》、《JavaScript排序算法總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》、《JavaScript查找算法技巧總結(jié)》及《JavaScript錯(cuò)誤與調(diào)試技巧總結(jié)

希望本文所述對(duì)大家JavaScript程序設(shè)計(jì)有所幫助。

相關(guān)文章

最新評(píng)論