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 相关文章推荐
JavaScript获得选中文本内容的方法
Dec 02 Javascript
ExtJS 2.0实用简明教程之应用ExtJS
Apr 29 Javascript
JavaScript具有类似Lambda表达式编程能力的代码(改进版)
Sep 14 Javascript
javascript高级学习笔记整理
Aug 14 Javascript
js 连接数据库如何操作数据库中的数据
Nov 23 Javascript
浅析Cookie中的Path与domain
Dec 18 Javascript
js中settimeout方法加参数的使用实例
Feb 27 Javascript
浏览器窗口大小变化时使用resize事件对框架不起作用的解决方法
May 11 Javascript
jQuery仿京东商城楼梯式导航定位菜单
Jul 25 Javascript
js实现移动端轮播图
Dec 21 Javascript
详解js动态获取浏览器或页面等容器的宽高
Mar 13 Javascript
jQuery+ajax实现用户登录验证
Sep 13 jQuery
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中var_export与var_dump的区别分析
2010/08/21 PHP
深入分析php中接口与抽象类的区别
2013/06/08 PHP
Function.prototype.call.apply结合用法分析示例
2013/07/03 Javascript
使用jQuery避免鼠标双击的解决方案
2013/08/21 Javascript
jquery实现下拉框功能效果【实例代码】
2016/05/06 Javascript
BootStrap的select2既可以查询又可以输入的实现代码
2017/02/17 Javascript
vue指令以及dom操作详解
2017/03/04 Javascript
HTML5+jQuery实现搜索智能匹配功能
2017/03/24 jQuery
jQuery查找dom的几种方法效率详解
2017/05/17 jQuery
自定义类似于jQuery UI Selectable 的Vue指令v-selectable
2017/08/23 jQuery
react以create-react-app为基础创建项目
2018/03/14 Javascript
js将键值对字符串转为json字符串的方法
2018/03/30 Javascript
node.js自动上传ftp的脚本分享
2018/06/16 Javascript
JS实现把一个页面层数据传递到另一个页面的两种方式
2018/08/13 Javascript
vue 添加和编辑用同一个表单,el-form表单提交后清空表单数据操作
2020/08/03 Javascript
[04:10]DOTA2英雄梦之声_第11期_圣堂刺客
2014/06/21 DOTA
[01:02:10]DOTA2上海特级锦标赛B组小组赛#2 VG VS Fnatic第一局
2016/02/26 DOTA
[00:47]TI7不朽珍藏III——沙王不朽展示
2017/07/15 DOTA
Python3 正在毁灭 Python的原因分析
2014/11/28 Python
ubuntu系统下 python链接mysql数据库的方法
2017/01/09 Python
python中pylint使用方法(pylint代码检查)
2018/04/06 Python
Python实现的txt文件去重功能示例
2018/07/07 Python
python之线程通过信号pyqtSignal刷新ui的方法
2019/01/11 Python
Python Django切换MySQL数据库实例详解
2019/07/16 Python
python切片(获取一个子列表(数组))详解
2019/08/09 Python
CSS3 二级导航菜单的制作的示例
2018/04/02 HTML / CSS
总结html5自定义属性有哪些
2020/04/01 HTML / CSS
June Jacobs尊积帕官网:知名的spa水疗护肤品牌
2019/03/21 全球购物
一套C++笔试题面试题
2012/06/06 面试题
科室工作的个人自我评价
2013/10/30 职场文书
员工安全生产承诺书
2014/05/22 职场文书
环卫工人节活动总结
2014/08/29 职场文书
2016年高校自主招生自荐信范文
2015/03/24 职场文书
团队合作精神学习心得体会
2016/01/19 职场文书
24句精辟的现实社会语录,句句扎心,道尽人性
2019/08/29 职场文书
python 爬取吉首大学网站成绩单
2021/06/02 Python