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 相关文章推荐
FireFox中textNode分片的问题
Apr 10 Javascript
javascript 日历提醒系统( 兼容所有浏览器 )
Apr 07 Javascript
JavaScript 常见对象类创建代码与优缺点分析
Dec 07 Javascript
通过js来制作复选框的全选和不选效果
May 22 Javascript
基于JS实现的倒计时程序实例
Jul 24 Javascript
javascript中递归函数用法注意点
Jul 30 Javascript
利用Javascript实现BMI计算器
Aug 16 Javascript
JavaScript中定时控制Throttle、Debounce和Immediate详解
Nov 17 Javascript
前端框架学习总结之Angular、React与Vue的比较详解
Mar 14 Javascript
vue.js利用defineProperty实现数据的双向绑定
Apr 28 Javascript
vue2 设置router-view默认路径的实例
Sep 20 Javascript
浅谈vue中$event理解和框架中在包含默认值外传参
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调用MySQL的存储过程的实现代码
2008/08/12 PHP
Zend Studio (eclipse)使用速度优化方法
2011/03/23 PHP
php替换超长文本中的特殊字符的函数代码
2012/05/22 PHP
PHP中绘制图像的一些函数总结
2014/11/19 PHP
PHP如何实现跨域
2016/05/30 PHP
PHP编写daemon process 实例详解
2016/11/13 PHP
javascript高级程序设计第二版第十二章事件要点总结(常用的跨浏览器检测方法)
2012/08/22 Javascript
Javascript开发之三数组对象实例介绍
2012/11/12 Javascript
js怎么覆盖原有方法实现重写
2014/09/04 Javascript
javascript中call,apply,bind的用法对比分析
2015/02/12 Javascript
javascript实现验证IP地址等相关信息代码
2015/05/10 Javascript
Js+php实现异步拖拽上传文件
2015/06/23 Javascript
基于jQuery仿淘宝产品图片放大镜代码分享
2020/06/23 Javascript
AngularJS自定义插件实现网站用户引导功能示例
2016/11/07 Javascript
Vue.js实现输入框绑定的实例代码
2017/08/24 Javascript
vue进行图片的预加载watch用法实例讲解
2018/02/07 Javascript
python错误处理详解
2014/09/28 Python
Queue 实现生产者消费者模型(实例讲解)
2017/11/13 Python
Python装饰器用法实例总结
2018/02/07 Python
获取django框架orm query执行的sql语句实现方法分析
2019/06/20 Python
Python MongoDB 插入数据时已存在则不执行,不存在则插入的解决方法
2019/09/24 Python
Python集合操作方法详解
2020/02/09 Python
Python ORM框架Peewee用法详解
2020/04/29 Python
Python如何读取、写入CSV数据
2020/07/28 Python
吃透移动端 1px的具体用法
2019/12/16 HTML / CSS
bareMinerals官网:矿物质化妆品和护肤品
2018/02/04 全球购物
数据库面试要点基本概念
2013/10/31 面试题
幼儿园健康教育方案
2014/06/14 职场文书
《我爱祖国》演讲稿1000字
2014/09/26 职场文书
假期安全教育广播稿
2014/10/04 职场文书
房产公证书
2015/01/23 职场文书
社区服务理念口号
2015/12/25 职场文书
读《人生的智慧》有感:闲暇是人生的精华
2019/12/25 职场文书
解决Python中的modf()函数取小数部分不准确问题
2021/05/28 Python
帮你提高开发效率的JavaScript20个技巧
2021/06/18 Javascript
基于Go语言构建RESTful API服务
2021/07/25 Golang