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 相关文章推荐
JQuery 学习笔记 选择器之六
Jul 23 Javascript
JavaScript中的逻辑判断符&amp;&amp;、||与!介绍
Dec 31 Javascript
ECMAScript6中Map/WeakMap详解
Jun 12 Javascript
JQuery通过AJAX从后台获取信息显示在表格上并支持行选中
Sep 15 Javascript
JQuery之proxy实现绑定代理方法
Aug 01 Javascript
javascript实现简单的on事件绑定
Aug 23 Javascript
对js中回调函数的一些看法
Aug 29 Javascript
微信小程序 数据访问实例详解
Oct 08 Javascript
详解使用Vue.Js结合Jquery Ajax加载数据的两种方式
Jan 10 Javascript
angularjs数组判断是否含有某个元素的实例
Feb 27 Javascript
ES6 系列之 WeakMap的使用示例
Aug 06 Javascript
vue单文件组件无法获取$refs的问题
Jun 24 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+jQuery制作的列表分页的功能模块
2014/10/14 PHP
php字符串比较函数用法小结(strcmp,strcasecmp,strnatcmp及strnatcasecmp)
2016/07/18 PHP
php变量与数组相互转换的方法(extract与compact)
2016/12/02 PHP
js利用与或运算符优先级实现if else条件判断表达式
2010/04/15 Javascript
用Javascript实现Sleep暂停功能代码
2010/09/03 Javascript
基于jquery实现的可编辑下拉框实现代码
2014/08/02 Javascript
JavaScript将数组转换成CSV格式的方法
2015/03/19 Javascript
有关jquery与DOM节点操作方法和属性记录
2016/04/15 Javascript
laypage分页控件使用实例详解
2016/05/19 Javascript
javascript类型系统——日期Date对象全面了解
2016/07/13 Javascript
Angular 2.x学习教程之结构指令详解
2017/05/25 Javascript
薪资那么高的Web前端必看书单
2017/10/13 Javascript
浅谈Vuex@2.3.0 中的 state 支持函数申明
2017/11/22 Javascript
基于vue 开发中出现警告问题去除方法
2018/01/25 Javascript
Layui组件Table绑定行点击事件和获取行数据的方法
2018/08/19 Javascript
JS如何在数组指定位置插入元素
2020/03/10 Javascript
JS sort排序详细使用方法示例解析
2020/09/27 Javascript
用vue写一个日历
2020/11/02 Javascript
[04:28]DOTA2亚洲邀请赛小组赛第五日 TOP10精彩集锦
2015/02/03 DOTA
分享15个最受欢迎的Python开源框架
2014/07/13 Python
python 3.6.5 安装配置方法图文教程
2018/09/18 Python
Python GUI编程完整示例
2019/04/04 Python
python配置文件写入过程详解
2019/10/19 Python
numpy.transpose()实现数组的转置例子
2019/12/02 Python
利用Python批量识别电子账单数据的方法
2021/02/08 Python
阿里云:Aliyun.com
2017/02/15 全球购物
世界上最大的隐形眼镜商店:1-800 Contacts
2018/11/03 全球购物
美国按摩椅批发网站:Titan Chair
2018/12/27 全球购物
Easy Spirit官网:美国休闲鞋履中的代表品牌
2019/04/12 全球购物
化工专业应届生求职信
2013/11/08 职场文书
留学生求职信
2014/06/03 职场文书
个人授权委托书模板
2014/09/14 职场文书
升学宴答谢词
2015/01/05 职场文书
上市公司财务总监岗位职责
2015/04/03 职场文书
创业计划书之水果店
2019/07/18 职场文书
PHP中->和=>的意思
2021/03/31 PHP