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 相关文章推荐
基于Jquery的文字滚动跑马灯插件(一个页面多个滚动区)
Jul 26 Javascript
JSONP 跨域访问代理API-yahooapis实现代码
Dec 02 Javascript
js获取location.href的参数实例代码
Aug 02 Javascript
javascript获取所有同类checkbox选项(实例代码)
Nov 07 Javascript
调用HttpHanlder的几种返回方式小结
Dec 20 Javascript
javascript实现复选框超过限制即弹出警告框的方法
Feb 25 Javascript
在html中引入外部js文件,并调用带参函数的方法
Oct 31 Javascript
jQuery中的siblings()是什么意思(推荐)
Dec 29 Javascript
JSON与JS对象的区别与对比
Mar 01 Javascript
Vue项目中Api的组织和返回数据处理的操作
Nov 04 Javascript
jQuery实现简易QQ聊天框
Feb 10 jQuery
js防抖函数和节流函数使用场景和实现区别示例分析
Apr 11 Javascript
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
php中存储用户ID和密码到mysql数据库的方法
2013/02/06 PHP
通过php删除xml文档内容的方法
2015/01/23 PHP
PHP crc32()函数讲解
2019/02/14 PHP
laravel-admin表单提交隐藏一些数据,回调时获取数据的方法
2019/10/08 PHP
33种Javascript 表格排序控件收集
2009/12/03 Javascript
判断客户浏览器是否支持cookie的示例代码
2013/12/23 Javascript
javascript 中的 delete及delete运算符
2015/11/15 Javascript
AngularJS 自定义过滤器详解及实例代码
2016/09/14 Javascript
JavaScript表单验证实现代码
2017/05/22 Javascript
vue init失败简单解决方法(终极版)
2017/12/22 Javascript
vue+elementUi 实现密码显示/隐藏+小图标变化功能
2020/01/18 Javascript
vue 判断页面是首次进入还是再次刷新的实例
2020/11/05 Javascript
ant design的table组件实现全选功能以及自定义分页
2020/11/17 Javascript
jQuery实现可以扩展的日历
2020/12/01 jQuery
数据清洗--DataFrame中的空值处理方法
2018/07/03 Python
python语音识别实践之百度语音API
2018/08/30 Python
Python自动抢红包教程详解
2019/06/11 Python
python傅里叶变换FFT绘制频谱图
2019/07/19 Python
在vscode中配置python环境过程解析
2019/09/28 Python
python圣诞树编写实例详解
2020/02/13 Python
python装饰器代码深入讲解
2021/03/01 Python
全球第二大家装零售商:Lowe’s
2018/01/13 全球购物
如何设定的weblogic的热启动模式(开发模式)与产品发布模式
2012/09/08 面试题
高校学生干部的自我评价分享
2013/11/04 职场文书
电子商务专业毕业生工作推荐信
2013/11/17 职场文书
大学生演讲稿范文
2014/01/11 职场文书
部队党性分析材料
2014/02/16 职场文书
技术负责人任命书
2014/06/05 职场文书
2014年宣传部工作总结
2014/11/12 职场文书
商场营业员岗位职责
2015/04/14 职场文书
科技馆观后感
2015/06/08 职场文书
天气温馨提示语
2015/07/14 职场文书
JS一分钟在github+Jekyll的博客中添加访问量功能的实现
2021/04/03 Javascript
mysql批量新增和存储的方法实例
2021/04/07 MySQL
Python利器openpyxl之操作excel表格
2021/04/17 Python
关于flex 上下文中自动 margin的问题(完整例子)
2021/05/20 HTML / CSS