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 相关文章推荐
xtree.js 代码
Mar 13 Javascript
combox改进版 页面原型参考dojo的,比网上jQuery的那些combox功能强,代码更小
Apr 15 Javascript
JavaScript简单验证表单空值及邮箱格式的方法
Jan 20 Javascript
JavaScript比较两个数组的内容是否相同(推荐)
May 02 Javascript
使用vux实现上拉刷新功能遇到的坑
Feb 08 Javascript
JavaScript实现异步图像上传功能
Jul 12 Javascript
Vue自定义指令写法与个人理解
Feb 09 Javascript
layer.js open 隐藏滚动条的例子
Sep 05 Javascript
vue element-ui实现input输入框金额数字添加千分位
Dec 29 Javascript
Vue移动端用淘宝弹性布局lib-flexible插件做适配的方法
May 26 Javascript
原生JS实现九宫格抽奖
Sep 13 Javascript
如何用threejs实现实时多边形折射
May 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中的字符串函数
2006/10/09 PHP
Php Mssql操作简单封装支持存储过程
2009/12/11 PHP
set_exception_handler函数在ThinkPHP中的用法
2014/10/31 PHP
php将数组转换成csv格式文件输出的方法
2015/03/14 PHP
thinkPHP自定义类实现方法详解
2016/11/30 PHP
php获取是星期几的的一些常用姿势
2019/12/15 PHP
用jquery模仿的a的title属性(兼容ie6/7)
2013/01/21 Javascript
select标签模拟/美化方法采用JS外挂式插件
2013/04/01 Javascript
jquery自定义属性(类型/属性值)
2013/05/21 Javascript
如何创建一个JavaScript弹出DIV窗口层的效果
2013/09/25 Javascript
js简单实现HTML标签Select联动带跳转
2013/10/23 Javascript
Javascript中的异步编程规范Promises/A详细介绍
2014/06/06 Javascript
jquery实现表单输入时提示文字滑动向上效果
2015/08/10 Javascript
文本框只能输入数字的实现方法(兼容IE火狐)
2016/06/25 Javascript
详解Node项目部署到云服务器上
2017/07/12 Javascript
使用vue-route 的 beforeEach 实现导航守卫(路由跳转前验证登录)功能
2018/03/22 Javascript
vue 路由meta 设置导航隐藏与显示功能的示例代码
2020/09/04 Javascript
[01:30:15]DOTA2-DPC中国联赛 正赛 Ehome vs Aster BO3 第二场 2月2日
2021/03/11 DOTA
python进阶教程之异常处理
2014/08/30 Python
使用Python的Twisted框架编写简单的网络客户端
2015/04/16 Python
Python下Fabric的简单部署方法
2015/07/14 Python
Python在不同目录下导入模块的实现方法
2017/10/27 Python
python构建深度神经网络(续)
2018/03/10 Python
Python基于opencv的图像压缩算法实例分析
2018/05/03 Python
python基础学习之如何对元组各个元素进行命名详解
2018/07/12 Python
Python Unittest原理及基本使用方法
2020/11/06 Python
python 爬取腾讯视频评论的实现步骤
2021/02/18 Python
解决pip安装tensorflow中出现的no module named tensorflow.python 问题方法
2021/02/20 Python
法国春天百货官网:Printemps.com
2020/06/29 全球购物
人事任命书格式
2014/06/05 职场文书
关于读书的演讲稿400字
2014/08/27 职场文书
2014年大学生工作总结
2014/11/20 职场文书
争先创优个人总结
2015/03/04 职场文书
导游词之无锡古运河
2019/11/14 职场文书
基于CSS3画一个iPhone
2021/04/21 HTML / CSS
mysql分表之后如何平滑上线详解
2021/11/01 MySQL