javascript数据结构之串的概念与用法分析


Posted in Javascript onApril 12, 2017

本文实例讲述了javascript数据结构之串的概念与用法。分享给大家供大家参考,具体如下:

串是由零个或多个字符组成的有限序列。串中字符的个数称为串的长度

串中任意个连续的字符组成的子序列称为该串的子串。包含子串的串相应地称为主串。通常称字符在序列中的序号为该字符在串中的位置。子串的首字符在主串中首次出现的位置定义为子串在主串中的位置。

串的逻辑结构和线性表十分相似,区别仅仅在于串的数据对象约束为字符集。然而两者的基本操作有很大差别。线性表中,基本以单个元素来进行操作;而串中多半以串的整体也就是子串来作为操作对象

JavaScript有很多串的方法吗,具体的请查阅api。
https://developer.mozilla.org/en-US/

这里我们挑一个来看看,比如indexOf,该方法返回String对象内第一次出现子字符串位置。如果没有找到子字符串,则返回-1。我们来模拟一下这个方法的实现:

<!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个位置取和子串长度相等的进行比较,如果没有找到则继续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时,如果能够知道其实现的原理,就可以更好的驾驭它们。当然,该方法还可以改进,我在以后的文章中会介绍的。

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
获取页面高度,窗口高度,滚动条高度等参数值getPageSize,getPageScroll
Sep 22 Javascript
如何使Chrome控制台支持多行js模式——意外发现
Jun 13 Javascript
Javascript中的delete操作符详细介绍
Jun 06 Javascript
JavaScript常用验证函数实例汇总
Nov 25 Javascript
使用js实现数据格式化
Dec 03 Javascript
javascript背景时钟实现方法
Jun 18 Javascript
Node.js 应用跑得更快 10 个技巧
Apr 03 Javascript
bootstrap输入框组件使用方法详解
Jan 19 Javascript
element-ui upload组件多文件上传的示例代码
Oct 17 Javascript
vue通过cookie获取用户登录信息的思路详解
Oct 30 Javascript
Bootstrap table 实现树形表格联动选中联动取消功能
Sep 30 Javascript
Vue OpenLayer 为地图绘制风场效果
Apr 24 Vue.js
详解RequireJS按需加载样式文件
Apr 12 #Javascript
JS表格组件神器bootstrap table使用指南详解
Apr 12 #Javascript
详谈jQuery.load()和Jsp的include的区别
Apr 12 #jQuery
微信小程序开发之选项卡(窗口底部TabBar)页面切换
Apr 12 #Javascript
JavaScript模块化之使用requireJS按需加载
Apr 12 #Javascript
使用jQuery和ajax代替iframe的方法(详解)
Apr 12 #jQuery
微信小程序 仿美团分类菜单 swiper分类菜单
Apr 12 #Javascript
You might like
中国站长站 For Dede4.0 采集规则
2007/05/27 PHP
php下过滤HTML代码的函数
2007/12/10 PHP
ThinkPHP与PHPExcel冲突解决方法
2011/08/08 PHP
PHP加密函数 Javascript/Js 解密函数
2013/09/23 PHP
新浪SAE搭建PHP项目教程
2015/01/28 PHP
一个不错的用JavaScript实现的UBB编码函数
2007/03/09 Javascript
javascript下4个跨浏览器必备的函数
2010/03/07 Javascript
JQuery onload、ready概念介绍及使用方法
2013/04/27 Javascript
用javascript删除当前行,添加行(示例代码)
2013/11/25 Javascript
javascript控制台详解
2015/06/25 Javascript
js仿百度登录页实现拖动窗口效果
2016/03/11 Javascript
浅析JavaScript的几种Math函数,random(),ceil(),round(),floor()
2016/12/22 Javascript
mui上拉加载功能实例详解
2017/04/13 Javascript
解决OneThink中无法异步提交kindeditor文本框中修改后的内容方法
2017/05/05 Javascript
Mongoose实现虚拟字段查询的方法详解
2017/08/15 Javascript
js求数组中全部数字可拼接出的最大整数示例代码
2017/08/25 Javascript
解析Vue 2.5的Diff算法
2017/11/28 Javascript
vue-quill-editor富文本编辑器简单使用方法
2018/09/21 Javascript
NodeJs之word文件生成与解析的实现代码
2019/04/01 NodeJs
[04:01]2014DOTA2国际邀请赛 TITAN告别Ohaiyo期望明年再战
2014/07/15 DOTA
python打开url并按指定块读取网页内容的方法
2015/04/29 Python
Python通过poll实现异步IO的方法
2015/06/04 Python
pyhanlp安装介绍和简单应用
2019/02/22 Python
Python flask路由间传递变量实例详解
2020/06/03 Python
python实现xlwt xlrd 指定条件给excel行添加颜色
2020/07/14 Python
python 监控logcat关键字功能
2020/09/04 Python
python批量修改文件名的示例
2020/09/27 Python
linux centos 7.x 安装 python3.x 替换 python2.x的过程解析
2020/12/14 Python
详解Python 中的 defaultdict 数据类型
2021/02/22 Python
SNIDEL官网:日本VIVI杂志人气少女第一品牌
2020/03/12 全球购物
质量负责人任命书
2014/06/06 职场文书
纪念九一八事变演讲稿:牢记历史,捍卫主权
2014/09/14 职场文书
大学生毕业个人总结
2015/02/15 职场文书
画展观后感
2015/06/17 职场文书
欠条格式范本
2015/07/03 职场文书
表扬信范文
2019/04/22 职场文书