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 相关文章推荐
JS 学习笔记 防止发生命名冲突
Jul 30 Javascript
简单几行JS Code实现IE邮件转发新浪微博
Jul 03 Javascript
js实现简单的可切换选项卡效果
Apr 10 Javascript
javascript实现省市区三级联动下拉框菜单
Nov 17 Javascript
js获取本机操作系统类型的两种方法
Dec 19 Javascript
js实现仿微博滚动显示信息的效果
Dec 21 Javascript
thinkphp标签实现bootsrtap轮播carousel实例代码
Feb 19 Javascript
微信小程序学习笔记之函数定义、页面渲染图文详解
Mar 28 Javascript
VUE解决微信签名及SPA微信invalid signature问题(完美处理)
Mar 29 Javascript
微信小程序 轮播图实现原理及优化详解
Sep 29 Javascript
微信小程序自定义联系人弹窗
May 26 Javascript
vue中的循环对象属性和属性值用法
Sep 04 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
一个高ai的分页函数和一个url函数
2006/10/09 PHP
详谈 Jquery Ajax异步处理Json数据.
2011/09/09 Javascript
jquery获取特定name所有选中的checkbox,支持IE9标准模式
2013/03/18 Javascript
JQuery异步加载无限下拉框级联功能实现示例
2014/02/19 Javascript
javascript 面向对象封装与继承
2014/11/27 Javascript
重写document.write实现无阻塞加载js广告(补充)
2014/12/12 Javascript
基于JavaScript实现高德地图和百度地图提取行政区边界经纬度坐标
2016/01/22 Javascript
js 轮播效果实例分享
2016/12/28 Javascript
JS获取多维数组中相同键的值实现方法示例
2017/01/06 Javascript
JavaScript使用正则表达式获取全部分组内容的方法示例
2017/01/17 Javascript
jQuery模拟下拉框选择对应菜单的内容
2017/03/07 Javascript
vue-router 中router-view不能渲染的解决方法
2017/05/23 Javascript
javascript函数的节流[throttle]与防抖[debounce]
2017/11/15 Javascript
jQuery实现table表格checkbox全选的方法分析
2018/07/04 jQuery
Vue组件Draggable实现拖拽功能
2018/12/01 Javascript
angular学习之动态创建表单的方法
2018/12/07 Javascript
js中数组对象去重的两种方法
2019/01/18 Javascript
layui.tree组件的使用以及搜索节点功能的实现
2019/09/26 Javascript
微信小程序实现一个简单swiper代码实例
2019/12/30 Javascript
javascript利用键盘控制小方块的移动
2020/04/20 Javascript
Vue实现跑马灯效果
2020/05/25 Javascript
[04:37]DOTA2英雄梦之声Vol20发条
2014/06/20 DOTA
Python编写电话薄实现增删改查功能
2016/05/07 Python
python类的继承实例详解
2017/03/30 Python
Pycharm学习教程(5) Python快捷键相关设置
2017/05/03 Python
Python编程django实现同一个ip十分钟内只能注册一次
2017/11/03 Python
python 命名规范知识点汇总
2020/02/14 Python
Python开发入门——迭代的基本使用
2020/09/03 Python
幼儿园端午节活动方案
2014/08/25 职场文书
讲文明懂礼貌演讲稿
2014/09/11 职场文书
对照检查剖析材料
2014/09/30 职场文书
二手车转让协议书
2015/01/29 职场文书
教师远程培训心得体会
2016/01/09 职场文书
使用Vue3+Vant组件实现App搜索历史记录功能(示例代码)
2021/06/09 Vue.js
SpringRetry重试框架的具体使用
2021/07/25 Java/Android
win11怎么用快捷键锁屏? windows11锁屏的几种方法
2021/11/21 数码科技