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与下拉列表处理问题解决
Feb 13 Javascript
JS获取select的value和text值的简单实例
Feb 26 Javascript
javascript页面上使用动态时间具体实现
Mar 18 Javascript
Javascript中的五种数据类型详解
Dec 26 Javascript
基于JavaScript实现数码时钟效果
Mar 30 Javascript
node中Express 动态设置端口的方法
Aug 04 Javascript
基于vue-cli创建的项目的目录结构及说明介绍
Nov 23 Javascript
AngularJS动态添加数据并删除的实例
Feb 27 Javascript
JS浅拷贝和深拷贝原理与实现方法分析
Feb 28 Javascript
elementui之el-tebs浏览器卡死的问题和使用报错未注册问题
Jul 06 Javascript
使用JavaScrip模拟实现仿京东搜索框功能
Oct 16 Javascript
javascript中正则表达式语法详解
Aug 07 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中使用PDF文档功能
2006/10/09 PHP
PHP函数preg_match_all正则表达式的基本使用详细解析
2013/08/31 PHP
smarty自定义函数htmlcheckboxes用法实例
2015/01/22 PHP
php文件上传简单实现方法
2015/01/24 PHP
自定义Laravel (monolog)日志位置,并增加请求ID的实现
2019/10/17 PHP
表单元素事件 (Form Element Events)
2009/07/17 Javascript
Array, Array Constructor, for in loop, typeof, instanceOf
2011/09/13 Javascript
扩展js对象数组的OrderByAsc和OrderByDesc方法实现思路
2013/05/17 Javascript
JavaScript中this详解
2015/09/01 Javascript
微信小程序 页面跳转传值实现代码
2017/07/27 Javascript
web前端vue之CSS过渡效果示例
2018/01/10 Javascript
Vue项目中跨域问题解决方案
2018/06/05 Javascript
vue项目中添加单元测试的方法
2018/07/21 Javascript
微信小程序开发之左右分栏效果的实例代码
2019/05/20 Javascript
leaflet加载geojson叠加显示功能代码
2020/02/21 Javascript
小程序实现录音功能
2020/09/22 Javascript
Windows下Eclipse+PyDev配置Python+PyQt4开发环境
2016/05/17 Python
Python的Flask框架中使用Flask-SQLAlchemy管理数据库的教程
2016/06/14 Python
python django 增删改查操作 数据库Mysql
2017/07/27 Python
对python中 math模块下 atan 和 atan2的区别详解
2020/01/17 Python
Python使用Pyqt5实现简易浏览器(最新版本测试过)
2020/04/27 Python
Python中如何引入第三方模块
2020/05/27 Python
Numpy中ndim、shape、dtype、astype的用法详解
2020/06/14 Python
使用pandas读取表格数据并进行单行数据拼接的详细教程
2021/03/03 Python
HTML5边玩边学(1)画布实现方法
2010/09/21 HTML / CSS
青年创业培训欢迎词
2014/01/08 职场文书
2014三八妇女节活动总结
2014/03/01 职场文书
明信片寄语大全
2014/04/08 职场文书
教师个人读书活动总结
2014/07/08 职场文书
乡镇党员群众路线教育实践活动对照检查材料思想汇报
2014/10/05 职场文书
违章停车检讨书
2014/10/21 职场文书
学生喝酒检讨书500字
2014/11/02 职场文书
2015年会计个人工作总结
2015/04/02 职场文书
安娜卡列尼娜观后感
2015/06/11 职场文书
Python OpenCV实现传统图片格式与base64转换
2021/06/13 Python
Python中使用Opencv开发停车位计数器功能
2022/04/04 Python