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 相关文章推荐
实现png图片和png背景透明(支持多浏览器)的方法
Sep 08 Javascript
基于jquery的复制网页内容到WORD的实现代码
Feb 16 Javascript
圣诞节Merry Christmas给博客添加浪漫的下雪效果基于jquery实现
Dec 27 Javascript
基于jquery实现点击左右按钮图片横向滚动
Apr 11 Javascript
js定时器的使用(实例讲解)
Jan 06 Javascript
jQuery操作表格(table)的常用方法、技巧汇总
Apr 12 Javascript
coffeescript使用的方式汇总
Aug 05 Javascript
JavaScript高级程序设计(第三版)学习笔记6、7章
Mar 11 Javascript
JS中split()用法(将字符串按指定符号分割成数组)
Oct 24 Javascript
js点击任意区域弹出层消失实现代码
Dec 27 Javascript
React组件生命周期详解
Jul 03 Javascript
浅谈v-for 和 v-if 并用时筛选条件方法
Nov 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-FPM之Chroot执行环境详解
2015/08/03 PHP
使用php实现网站验证码功能【推荐】
2017/02/09 PHP
PHP下载大文件失败并限制下载速度的实例代码
2019/05/10 PHP
Laravel如何实现适合Api的异常处理响应格式
2020/06/14 PHP
setTimeout 不断吐食CPU的问题分析
2009/04/01 Javascript
jQuery TextBox自动完成条
2009/07/22 Javascript
用方法封装javascript的new操作符(一)
2010/12/25 Javascript
jQuery动态设置form表单的enctype值(实现代码)
2013/07/04 Javascript
IE中JS跳转丢失referrer问题的2个解决方法
2014/07/18 Javascript
Javascript动画的实现原理浅析
2015/03/02 Javascript
jQuery创建自定义的选择器用以选择高度大于100的超链接实例
2015/03/18 Javascript
IE中document.createElement的iframe无法设置属性name的解决方法
2015/09/14 Javascript
深入理解Javascript箭头函数中的this
2017/02/13 Javascript
JS数组操作中的经典算法实例讲解
2017/07/26 Javascript
webpack优化的深入理解
2018/12/10 Javascript
jQuery实现的老虎机跑动效果示例
2018/12/29 jQuery
在Vue项目中引入JQuery-ui插件的讲解
2019/01/27 jQuery
vue3 watch和watchEffect的使用以及有哪些区别
2021/01/26 Vue.js
[42:32]完美世界DOTA2联赛循环赛 Magma vs PXG BO2第二场 10.28
2020/10/28 DOTA
python中cPickle用法例子分享
2014/01/03 Python
Python中的Classes和Metaclasses详解
2015/04/02 Python
详解Python中contextlib上下文管理模块的用法
2016/06/28 Python
django基础之数据库操作方法(详解)
2017/05/24 Python
Python爬虫实现使用beautifulSoup4爬取名言网功能案例
2019/09/15 Python
python读取图片的几种方式及图像宽和高的存储顺序
2020/02/11 Python
Python实现桌面翻译工具【新手必学】
2020/02/12 Python
Python 如何创建一个简单的REST接口
2020/07/30 Python
Django websocket原理及功能实现代码
2020/11/14 Python
matplotlib绘制多子图共享鼠标光标的方法示例
2021/01/08 Python
联想韩国官网:Lenovo Korea
2018/05/10 全球购物
C#如何允许一个类被继承但是避免这个类的方法被重载?
2015/02/24 面试题
2014自荐信的写作技巧
2014/01/28 职场文书
综合实践教学反思
2014/01/31 职场文书
雏鹰争章活动总结
2014/05/09 职场文书
基于Redis的List实现特价商品列表功能
2021/08/30 Redis
CDPR谈《巫师》新作用虚幻5原因 称不会为Epic独占
2022/04/06 其他游戏