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 相关文章推荐
Javascript计算两个marker之间的距离(Google Map V3)
Apr 26 Javascript
js截取中英文字符串、标点符号无乱码示例解读
Apr 17 Javascript
Javascript中setTimeOut和setInterval的定时器用法
Jun 12 Javascript
浅谈JavaScript的内置对象和浏览器对象
Jun 03 Javascript
浅谈js基本数据类型和typeof
Aug 09 Javascript
angularjs 实现带查找筛选功能的select下拉框实例
Jan 11 Javascript
带你了解session和cookie作用原理区别和用法
Aug 14 Javascript
vue实现弹框遮罩点击其他区域弹框关闭及v-if与v-show的区别介绍
Sep 29 Javascript
JS中验证整数和小数的正则表达式
Oct 08 Javascript
Ant Design Pro 之 ProTable使用操作
Oct 31 Javascript
在vue中动态修改css其中一个属性值操作
Dec 07 Vue.js
JS的深浅复制详细
Oct 16 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五种设计模式小结
2011/03/23 PHP
又一个PHP实现的冒泡排序算法分享
2014/08/21 PHP
浅谈php和.net的区别
2014/09/28 PHP
PHP callback函数使用方法和注意事项
2015/01/23 PHP
PHP反射API示例分享
2016/10/08 PHP
用js得到网页中所有的div的id
2020/10/19 Javascript
javascript中input中readonly和disabled区别介绍
2012/10/23 Javascript
js中typeof的用法汇总
2013/12/12 Javascript
Google官方支持的NodeJS访问API,提供后台登录授权
2014/07/29 NodeJs
JS中完美兼容各大浏览器的scrolltop方法
2015/04/17 Javascript
跟我学习javascript的prototype原型和原型链
2015/11/18 Javascript
动态加载css方法实现和深入解析
2017/01/18 Javascript
10个经典的网页鼠标特效代码
2018/01/09 Javascript
详解vuex的简单使用
2018/03/12 Javascript
详解a标签添加onclick事件的几种方式
2019/03/29 Javascript
Python实现批量检测HTTP服务的状态
2016/10/27 Python
详解python之多进程和进程池(Processing库)
2017/06/09 Python
python编程测试电脑开启最大线程数实例代码
2018/02/09 Python
Python求解任意闭区间的所有素数
2018/06/10 Python
Python使用Flask-SQLAlchemy连接数据库操作示例
2018/08/31 Python
Python 画出来六维图
2019/07/26 Python
10分钟教你用python动画演示深度优先算法搜寻逃出迷宫的路径
2019/08/12 Python
python使用socket 先读取长度,在读取报文内容示例
2019/09/26 Python
tensorflow 实现从checkpoint中获取graph信息
2020/02/10 Python
突袭HTML5之Javascript API扩展5—其他扩展(应用缓存/服务端消息/桌面通知)
2013/01/31 HTML / CSS
美国本地交易和折扣网站:LocalFlavor.com
2017/10/26 全球购物
Amara德国:家居饰品、设计师品牌和豪华礼品
2019/05/20 全球购物
大学生毕业自荐信
2013/10/10 职场文书
甜品店的创业计划书范文
2014/01/02 职场文书
视光学专业自荐信
2014/06/24 职场文书
工商管理专业毕业生自我鉴定2014
2014/10/04 职场文书
运动会新闻稿
2015/07/17 职场文书
信息技术远程培训心得体会
2016/01/09 职场文书
导游词之张家界
2019/10/31 职场文书
SQLServer2019 数据库环境搭建与使用的实现
2021/04/08 SQL Server
MySQL触发器的使用
2021/05/24 MySQL