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 相关文章推荐
ExtJS下grid的一些属性说明
Dec 13 Javascript
firefox下jQuery UI Autocomplete 1.8.*中文输入修正方法
Sep 19 Javascript
探讨jQuery的ajax使用场景(c#)
Dec 03 Javascript
IE与FF下javascript获取网页及窗口大小的区别详解
Jan 14 Javascript
javascript中的原型链深入理解
Feb 24 Javascript
setTimeout()递归调用不加引号出错的解决方法
Sep 05 Javascript
jquery插件之文字间歇自动向上滚动效果代码
Feb 25 Javascript
JQuery的Pager分页器实现代码
May 03 Javascript
基于three.js编写的一个项目类示例代码
Jan 05 Javascript
js实现录音上传功能
Nov 22 Javascript
vue数据响应式原理知识点总结
Feb 16 Javascript
Vant picker 多级联动操作
Nov 02 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中的单引号、双引号和转义字符详解
2017/02/16 PHP
PHP基于swoole多进程操作示例
2019/08/12 PHP
php使用gearman进行任务分发操作实例详解
2020/02/26 PHP
jQuery用unbind方法去掉hover事件及其他方法介绍
2013/03/18 Javascript
Javacript实现颜色梯度变化和渐变的效果代码
2013/05/31 Javascript
JQuery中dataGrid设置行的高度示例代码
2014/01/03 Javascript
关于jQuery中的each方法(jQuery到底干了什么)
2014/03/05 Javascript
通过正则表达式获取url中参数的简单实现
2016/06/07 Javascript
JS实现星星评分功能实例代码(两种方法)
2016/06/09 Javascript
微信小程序左右滑动切换页面详解及实例代码
2017/02/28 Javascript
jQuery实现动态删除LI的方法
2017/05/30 jQuery
Angular实现模版驱动表单的自定义校验功能(密码确认为例)
2018/05/17 Javascript
JS编写兼容IE6,7,8浏览器无缝自动轮播
2018/10/12 Javascript
vue 左滑删除功能的示例代码
2019/01/28 Javascript
微信小程序基于canvas渐变实现的彩虹效果示例
2019/05/03 Javascript
微信小程序 scroll-view 水平滚动实现过程解析
2019/10/12 Javascript
手动实现vue2.0的双向数据绑定原理详解
2021/02/06 Vue.js
Python实现读取txt文件并画三维图简单代码示例
2017/12/09 Python
python实现批量按比例缩放图片效果
2018/03/30 Python
用Python3创建httpServer的简单方法
2018/06/04 Python
python构建指数平滑预测模型示例
2019/11/21 Python
利用Python如何实时检测自身内存占用
2020/05/09 Python
Django 解决新建表删除后无法重新创建等问题
2020/05/21 Python
解析Python 偏函数用法全方位实现
2020/06/26 Python
浅谈Python3中print函数的换行
2020/08/05 Python
Python logging模块进行封装实现原理解析
2020/08/07 Python
python-图片流传输的思路及示例(url转换二维码)
2020/12/21 Python
解决pip安装tensorflow中出现的no module named tensorflow.python 问题方法
2021/02/20 Python
Johnston & Murphy官网: 约翰斯顿·墨菲牛津总统鞋
2018/01/09 全球购物
bonprix匈牙利:女士、男士和儿童服装
2019/07/19 全球购物
美国隐形眼镜网上商店:Lens.com
2019/09/03 全球购物
《秋游》教学反思
2014/04/24 职场文书
纪检干部个人对照检查材料
2014/09/23 职场文书
三峡导游词
2015/01/31 职场文书
具结保证书范本
2015/05/11 职场文书
小米11和iphone12哪个值得买?小米11对比iphone12评测
2021/04/21 数码科技