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 相关文章推荐
Blocksit插件实现瀑布流数据无限( 异步)加载
Jun 20 Javascript
IE下使用jQuery重置iframe地址时内存泄露问题解决办法
Feb 05 Javascript
javascript正则表达式定义(语法)总结
Jan 08 Javascript
JavaScript判断是否是微信浏览器
Jun 13 Javascript
js改变css样式的三种方法推荐
Jun 28 Javascript
文本框只能输入数字的js代码(含小数点)
Jul 10 Javascript
详细总结Javascript中的焦点管理
Sep 17 Javascript
Vue-cli proxyTable 解决开发环境的跨域问题详解
May 18 Javascript
Vue.js组件通信的几种姿势
Oct 23 Javascript
原生实现一个react-redux的代码示例
Jun 08 Javascript
vue vue-Router默认hash模式修改为history需要做的修改详解
Sep 13 Javascript
详解js获取video任意时间的画面截图
Apr 17 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实现源代码加密的方法
2015/07/11 PHP
微信小程序 消息推送php服务器验证实例详解
2017/03/30 PHP
PHP创建单例后台进程的方法示例
2017/05/23 PHP
PHP FileSystem 文件系统常用api整理总结
2019/07/12 PHP
ymPrompt的doHandler方法来实现获取子窗口返回值的方法
2010/06/25 Javascript
基于PHP+Jquery制作的可编辑的表格的代码
2011/04/10 Javascript
JavaScript执行顺序详细介绍
2013/12/04 Javascript
jquery拖拽效果完整实例(附demo源码下载)
2016/01/14 Javascript
基于jQuery实现仿微博发布框字数提示
2016/07/27 Javascript
webpack实现热加载自动刷新的方法
2017/07/30 Javascript
JavaScript异步加载问题总结
2018/02/17 Javascript
Mac下安装vue
2018/04/11 Javascript
微信小程序左滑删除功能开发案例详解
2018/11/12 Javascript
js 递归json树实现根据子id查父id的方法分析
2019/11/08 Javascript
微信小程序自定义纯净模态框(弹出框)的实例代码
2020/03/09 Javascript
Vue项目结合Vue-layer实现弹框式编辑功能(实例代码)
2020/03/11 Javascript
Python实现的金山快盘的签到程序
2013/01/17 Python
重命名批处理python脚本
2013/04/05 Python
以一个投票程序的实例来讲解Python的Django框架使用
2016/02/18 Python
浅谈机器学习需要的了解的十大算法
2017/12/15 Python
python购物车程序简单代码
2018/04/18 Python
查看Django和flask版本的方法
2018/05/14 Python
Python根据文件名批量转移图片的方法
2018/10/21 Python
对python插入数据库和生成插入sql的示例讲解
2018/11/14 Python
Python结合Window计划任务监测邮件的示例代码
2020/08/05 Python
详解python datetime模块
2020/08/17 Python
Contém1g官网:巴西彩妆品牌
2020/01/17 全球购物
Overload和Override的区别
2012/09/02 面试题
运动会表扬稿大全
2014/01/16 职场文书
80后职场人的职业生涯规划
2014/03/08 职场文书
卖车协议书
2014/04/21 职场文书
考核评语大全
2014/04/29 职场文书
祖国在我心中演讲稿600字
2014/05/04 职场文书
关于责任的演讲稿
2014/05/20 职场文书
Python 如何解决稀疏矩阵运算
2021/05/26 Python
Python集合的基础操作
2021/11/01 Python