JS表的模拟方法


Posted in Javascript onFebruary 05, 2015

本文实例讲述了JS表的模拟方法。分享给大家供大家参考。具体方法如下:

<!doctype html>
<html>
  <head>
    <meta charset="utf-8">
    <title>列表</title>
    <script>
     function List(){
      this.listSize= 0;
      this.pos=0;
      this.dataStore=[];//初始化一个空数组来保存列表元素
      this.clear =clear;
      this.find = find;
      this.toString= toString;
      this.insert = insert;
      this.append= append;
      this.remove =remove;
      this.front = front;
      this.end = end;
      this.prev =prev;
      this.next = next;
      this.length= length;
      this.currPos= currPos;
      this.moveTo= moveTo;
      this.getElement =getElement;
      this.length = length;
      this.contains = contains;
      function append(element){
        this.dataStore[this.listSize++] = element;
      };
      function find(element){
        for(var i =0; i<this.dataStore.length; i++){
          if(this.dataStore[i]===element){
            return i ;
          }
        }
        return -1;
      }
      function remove(element){
        var foundAt =this.find(element);
        if(foundAt!=-1){
          this.dataStore.splice(foundAt,1);
          this.listSize--;
          return element;
          //return true 原本是这样,后面本人改为ELEMENT
        }else{
          return false;
        }
      }
      function length(){
        return this.listSize;
      }
      function toString(){
        return this.dataStore;
      }
      function insert(element,after){
        var insertPos = this.find(after);
        if(insertPos!=-1){
          this.dataStore.splice(insertPos+1,0,element);
          this.listSize++;
          return true;
        }else{
          return false;
        }
      }
      function clear (){
        delete this.dataStore;
        this.listSize=0;
        this.pos=0;
        this.dataStore=[];
      }
      function contains(element){
        for(var i =0; i<this.dataStore.length; i++){
          if(this.dataStore[i]===element){
            return true ;
          }        
        }
        return false;
      }
      function front(){
        this.pos = 0;
      }
      function end(){
        this.pos = this.listSize-1;
      }
      function prev(){
        // if(this.pos> 0){
          --this.pos;
       // }
      }
      function next(){
        // if(this.pos< this.listSize-1){
          ++this.pos;
        // }
      }
      function currPos(){
        return this.pos;
      }
      function moveTo(pos){
        this.pos= pos;     
      }
      function getElement(){
        return this.dataStore[this.pos];
      }
     }
     var list = new List();
     list.append({name:'夏广成',sex:'男'});
     list.append({name:'江荣盛',sex:'男'});
     list.append({name:'杜强',sex:'男'});
     list.append({name:'巧华',sex:'女'});
     list.append({name:'方阳',sex:'男'});
    for(list.front(); list.currPos() < list.length() ; list.next()){
     var item = list.getElement();
     if(item.sex =='女'){
      list.remove(item);
     }
    }
    for(list.front(); list.currPos() < list.length() ; list.next()){
     var item = list.getElement();
      console.log(item.name);
    }
    </script>
  </head>
  <body >
  </body>
</html>

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

Javascript 相关文章推荐
两种简单实现菜单高亮显示的JS类代码
Jun 27 Javascript
jQuery.buildFragment使用方法及思路分析
Jan 07 Javascript
解析Jquery的LigerUI如何实现文件上传
Jul 09 Javascript
js操作iframe兼容各种主流浏览器示例代码
Jul 22 Javascript
jquery实现弹出窗口效果的实例代码
Nov 28 Javascript
将json对象转换为字符串的方法
Feb 20 Javascript
javascript编写贪吃蛇游戏
Jul 07 Javascript
浅析AngularJS中的指令
Mar 20 Javascript
vue.js做一个简单的编辑菜谱功能
May 08 Javascript
vue实现密码显示与隐藏按钮的自定义组件功能
Apr 23 Javascript
基于jQuery的时间戳与日期间的转化
Jun 21 jQuery
Jquery滑动门/tab切换实现方法完整示例
Jun 05 jQuery
JS的数组迭代方法
Feb 05 #Javascript
js实现照片墙功能实例
Feb 05 #Javascript
js实现仿百度瀑布流的方法
Feb 05 #Javascript
JS函数this的用法实例分析
Feb 05 #Javascript
IE下使用jQuery重置iframe地址时内存泄露问题解决办法
Feb 05 #Javascript
js关于命名空间的函数实例
Feb 05 #Javascript
js实现数字每三位加逗号的方法
Feb 05 #Javascript
You might like
2019十大人气国漫
2020/03/13 国漫
用PHP实现登陆验证码(类似条行码状)
2006/10/09 PHP
php中$this-&amp;gt;含义分析
2009/11/29 PHP
destoon实现调用图文新闻的方法
2014/08/21 PHP
php实现图片转换成ASCII码的方法
2015/04/03 PHP
thinkphp5.0自定义验证规则使用方法
2017/11/16 PHP
url 特殊字符 传递参数解决方法
2010/01/01 Javascript
jqgrid 编辑添加功能详细解析
2013/11/08 Javascript
文本框文本自动补全效果示例分享
2014/01/19 Javascript
jQuery:delegate中select()不起作用的解决方法(实例讲解)
2014/01/26 Javascript
js身份证判断方法支持15位和18位
2014/03/18 Javascript
用js读、写、删除Cookie代码分享及详细注释说明
2014/06/05 Javascript
手机端网页点击链接触发自动拨打或保存电话的示例代码
2014/08/15 Javascript
浅谈jQuery hover(over, out)事件函数
2016/12/03 Javascript
深入理解jQuery()方法的构建原理
2016/12/05 Javascript
jquery dataview数据视图插件使用方法
2016/12/23 Javascript
Javascript中构造函数要注意的一些坑
2017/01/23 Javascript
详解json串反转义(消除反斜杠)
2019/08/12 Javascript
Vue 实现点击空白处隐藏某节点的三种方式(指令、普通、遮罩)
2019/10/23 Javascript
Vue 实现复制功能,不需要任何结构内容直接复制方式
2019/11/09 Javascript
在Python的Django框架中用流响应生成CSV文件的教程
2015/05/02 Python
Python中格式化format()方法详解
2017/04/01 Python
Python常见加密模块用法分析【MD5,sha,crypt模块】
2017/05/24 Python
Python打包方法Pyinstaller的使用
2018/10/09 Python
Python实现简单层次聚类算法以及可视化
2019/03/18 Python
python+selenium+chromedriver实现爬虫示例代码
2020/04/10 Python
使用CSS3来绘制一个月食图案
2015/07/18 HTML / CSS
HTML5声音录制/播放功能的实现代码
2018/05/03 HTML / CSS
罗兰·穆雷官网:Roland Mouret
2018/09/28 全球购物
面向对象编程的优势是什么
2015/12/17 面试题
办公室年终个人自我评价
2013/10/28 职场文书
应聘医药销售自荐书范文
2014/02/08 职场文书
2014年涉外离婚协议书范本
2014/11/20 职场文书
2015年元旦促销方案书
2014/12/09 职场文书
2016年大学生实习单位评语
2015/12/01 职场文书
利用Python网络爬虫爬取各大音乐评论的代码
2021/04/13 Python