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 相关文章推荐
google地图的路线实现代码
Aug 20 Javascript
基于jquery的跨域调用文件
Nov 19 Javascript
jQuery实现渐变弹出层和弹出菜单的方法
Feb 20 Javascript
js实现动态加载脚本的方法实例汇总
Nov 02 Javascript
jQuery实现优雅的弹窗效果(6)
Feb 08 Javascript
element-ui 表格实现单元格可编辑的示例
Feb 26 Javascript
vue2.0学习之axios的封装与vuex介绍
May 28 Javascript
vue-cli的工程模板与构建工具详解
Sep 27 Javascript
通过实践编写优雅的JavaScript代码
May 30 Javascript
jQuery单页面文字搜索插件jquery.fullsearch.js的使用方法
Feb 04 jQuery
vue 翻页组件vue-flip-page效果
Feb 05 Javascript
mpvue 项目初始化及实现授权登录的实现方法
Jul 20 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
点评山进PR-D3L三波段收音机
2021/03/02 无线电
一个简单的PHP投票程序源码
2007/03/11 PHP
PHP receiveMail实现收邮件功能
2018/04/25 PHP
基于jquery实现的文字淡入淡出效果
2013/11/14 Javascript
jQuery事件绑定与解除绑定实现方法
2015/04/15 Javascript
kindeditor编辑器点中图片滚动条往上顶的bug
2015/07/05 Javascript
jQuery实现的登录浮动框效果代码
2015/09/26 Javascript
JS集成fckeditor及判断内容是否为空的方法
2016/05/27 Javascript
从重置input file标签中看jQuery的 .val() 和 .attr(“value”) 区别
2016/06/12 Javascript
es6学习之解构时应该注意的点
2017/08/29 Javascript
Vue项目全局配置微信分享思路详解
2018/05/04 Javascript
AngularJs返回前一页面时刷新一次前面页面的方法
2018/10/09 Javascript
史上最为详细的javascript继承(推荐)
2019/05/18 Javascript
解决layer图标icon不加载的问题
2019/09/04 Javascript
layer 关闭指定弹出层的例子
2019/09/25 Javascript
VUE:vuex 用户登录信息的数据写入与获取方式
2019/11/11 Javascript
mpvue微信小程序开发之实现一个弹幕评论
2019/11/24 Javascript
Python设置Socket代理及实现远程摄像头控制的例子
2015/11/13 Python
python实现发送邮件功能
2017/07/22 Python
Python中eval带来的潜在风险代码分析
2017/12/11 Python
Python使用ConfigParser模块操作配置文件的方法
2018/06/29 Python
Python线性拟合实现函数与用法示例
2018/12/13 Python
Linux下通过python获取本机ip方法示例
2019/09/06 Python
numpy 返回函数的上三角矩阵实例
2019/11/25 Python
HTML5 在canvas中绘制文本附效果图
2014/06/23 HTML / CSS
数以千计的折扣工业产品:ESE Direct
2018/05/20 全球购物
四种会话跟踪技术
2015/05/20 面试题
大学活动策划书范文
2014/01/10 职场文书
农村葬礼主持词
2014/03/31 职场文书
2014党员自我评议表范文
2014/09/20 职场文书
民主生活会对照检查材料(统计局)
2014/09/21 职场文书
给校长的建议书作文300字
2015/09/14 职场文书
大学毕业生自我鉴定范文
2019/06/21 职场文书
浅谈mysql执行过程以及顺序
2021/05/12 MySQL
Centos系统通过Docker安装并搭建MongoDB数据库
2022/04/12 MongoDB
java中为什么说子类的构造方法默认访问的是父类的无参构造方法
2022/04/13 Java/Android