<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      javascript中的表結構

        列表是一種常見的數據結構,通常列表是一族有徐的數據,列表中的數據項稱為元素。在javascript中列表中的數據可以是任意類型的,列表中可以保存多少元素沒有事先限定,實際使用時元素的數量只收到程序內內存的限制。

        不包含任何元素的列表稱為空列表,列表中包含元素的個數稱為列表的length,在內部實現上,用一個變量listSize保存列表中元素的個數。可以在列表末尾append一個元素,也可以在一個給定元素后面insert一個元素,使用remove方法從列表中刪除元素,使用clear方法清空列表中素有的元素。

        列表有前后,分別對應front和end,使用getElement()方法顯示當前元素,列表擁有描述元素位置的屬性,使用next()方法可以從當前元素移動到下一個元素,使用prev()方法可以移動到當前元素的前一個元素,還可以使用moveTo(n)方法直接移動到指定的位置,這里n標識要移動到第n個位置,currPos屬性標識列表中的當前位置。

      listSize(屬性) 列表的元素個數
      pos( 屬性) 列表的當前位置
      length( 屬性) 返回列表中元素的個數
      clear( 方法) 清空列表中的所有元素
      toString( 方法) 返回列表的字符串形式
      getElement( 方法) 返回當前位置的元素
      insert( 方法) 在現有元素后插入新元素
      append( 方法) 在列表的末尾添加新元素
      remove( 方法) 從列表中刪除元素
      front( 方法) 將列表的當前位置設移動到第一個元素
      end( 方法) 將列表的當前位置移動到最后一個元素
      prev(方法) 將當前位置后移一位
      next( 方法) 將當前位置前移一位
      currPos( 方法) 返回列表的當前位置
      moveTo(方法) 將當前位置移動到指定位置

      下面我們看看代碼實現

      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.contains = contains;
      
          //給列表添加元素,給列表的下一個位置增加一個新的元素,這個位置剛好等于listSize的值
          function append(element) {
              this.dataStore[this.listSize++] = element;
          }
              
          //在列表中查找一個元素,對數組對象dataStore迭代,查找給定的元素,如果找到就返回鈣元素在列表中的位置
          function find(element) {
              for(var i = 0; i < this.dataSource.length; ++i) {
                  if(this.dataSource[i] == element) {
                      return i;
                  }
                  return -1;
              }
          }
      
          //從列表中刪除元素,先在列表中找到該元素,然后刪除它,并且調整底層的數據對象以填補鈣元素留下的空白,slice()方法簡化這個過程
          function remove(elemment) {
              var foundAt = this.find(elemment);
              if(foundAt > -1) {
                  this.dataSource.splice(foundAt, 1);
                  --this.listSize;
                  return true;
              }
              return false;
          }
          
          //返回列表中的元素個數
          function length(){
              return this.listSize;
          }
          
          function toString(){
              return this.dataStore;
          }
          
          //插入元素,先找到要插入的位置,然后插入一個元素listSize自增
          function insert(element, after){
              var insertPos = this.find(after);
              if(insertPos > -1){
                  this.dataStore.splice(insertPos + 1, 0, element);
                  ++this.listSize;
                  return true;
              }
              return false;
          }
          
          //清空列表中所有元素,指針指向第一個
          function clear(){
              delete this.dataStore;
              this.dataStore = [];
              this.listSize = this.pos = 0;
          }
          
          //判斷給定值是否在列表中
          function contains(element){
              for (var i=0; i<this.dataStore.length; ++i) {
                  if(this.dataStore[i] == element){
                      return true;
                  }
              }
              return false;
          }
          
          //回到第0個
          function front(){
              this.pos = 0;
          }
          
          //到最后一個
          function end(){
              this.pos = this.listSize - 1;
          }
          
          //上一個,注意這里不判斷邊界
          function prev(){
              --this.pos;
          }
          
          //下一個,注意這里不判斷邊界
          function next(){
              ++this.pos;
          }
          
          //當前指針
          function currPos(){
              return this.pos;
          }
          
          //定位到位置
          function moveTo(position){
      //        if( position>-1 && position<this.listSize ){
                  this.pos = position;
      //        }
          }
          
          //返回當前元素
          function getElement(){
              return this.dataStore[this.pos];
          }
      }
      
      var names = new List();
      names.append('Clayton');
      names.append('Raymond');
      names.append('Cynthia');
      names.append('Jennifer');
      names.append('Bryan');
      names.append('Danny');
      
      for(names.front(); names.currPos() < names.length(); names.next()) {
          document.writeln(names.getElement());
      }
      
      for(names.end(); names.currPos() >= 0; names.prev()) {
          document.writeln(names.getElement());
      }

      最后的輸出結果如下:

       

      注意next()方法和prev()方法不判斷邊界,只負責移動下標。

       

       

      posted @ 2016-08-18 22:09  nd  閱讀(1038)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 岛国岛国免费v片在线观看| 国产精品中文第一字幕| 中文字幕日韩一区二区不卡 | 在线看国产精品自拍内射| 国产在线精品一区二区三区不卡| 国产精品久久久久久无毒不卡 | 玉林市| 色综合久久精品亚洲国产| 欧美变态口味重另类在线视频| 亚洲国产码专区在线观看| 亚洲熟妇少妇任你躁在线观看无码| 国产精品爆乳奶水无码视频免费| 久久这里只有精品首页| 精品国产精品国产偷麻豆| www插插插无码免费视频网站| 在线看片免费人成视频久网| 万安县| 亚洲综合成人一区二区三区| 买车| 亚洲一线二线三线品牌精华液久久久 | 国产精品三级黄色小视频| 三上悠亚日韩精品二区| 东京热高清无码精品| 免费人成视频x8x8国产| 日韩中文字幕v亚洲中文字幕| 久久精品免视看国产成人| 四虎在线成人免费观看| 久久久久综合一本久道| 国产一区二区三区十八禁| 亚洲欧美日韩在线不卡| 久久国产自拍一区二区三区| 国产一区二区不卡在线| 粉嫩小泬无遮挡久久久久久| 尤物yw193无码点击进入| 午夜精品区| 国产欧美日韩综合精品二区| 色悠悠成人综合在线视频| 河源市| 日韩熟女熟妇久久精品综合| 亚洲成人av在线综合| 亚洲精品不卡av在线播放|