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

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

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

      javascript中的字典

      1.概念

          字典是一種以鍵值對的形式存儲的數據結構,就系那個電話本中的名字和電話號碼一樣。要找到一個電話首先要找到名字,再根據名字找到電話號碼。這里的鍵就是指用來查找的東西,值就是查找得到的結果。

          Javascript中的object類就是已字典的形式設計的。這里使用object類本身的特性,實現一個dictionary類,讓字典類型的對戲那個使用起來更加簡單。

          dictionary類的基礎是array類,不是object類。稍后將會提到,我們想對字典中的鍵排序,而Javascript中是不能對對象的屬性經行排序。Javascript中一切皆是對象,數組也是對象。

          先使用下面的方法來定義dictionary類:

      function Dictionary(){
          this.datastore = new Object();
      }

          先來定義一個add方法,該方法接受兩個參數,鍵和值。鍵是值在字典下的索引,如下:

      function add(key, value){
          this.datastore[key] = value;
      }

          接下來定義find方法,該方法以鍵作為參數,返回和其關聯的值,代碼如下:

      function find(key){
          return this.datastore[key];
      }

          從字典中刪除鍵值對需要使用Javascript中的一個內置函數,delete,這個函數是object類的一部分,使用對鍵的引用作為參數,該函數同時刪掉和其關聯的值。代碼如下:

      function remove(key){
          delete this.datastore[key];
      }

          最后我們希望可以顯示字典中所有的鍵值對,下面是一個完成該任務的方法:

      function showAll(){
          for (var key in this.datastore) {
              document.write(key + '->' + this.datastore[key]);
              document.write('<br>');
          }
      }

          我們還可以定義一些在特定情況下有用的輔助方法。比如,要是知道字典中元素的個數就好了,那么可以頂一個count方法,如下:

      function count(){
          var n = 0;
          for (var key in this.datastore) {
              ++n;
          }
          return n;
      }

         很多看官和我一樣會想,能不能用length屬性,這是不行的,因為當鍵的類型為字符串的時候,length屬性就不管用了,可以使用下面的代碼來測試:

      var nums = new Array();
      nums[0] = 1;
      nums[1] = 2;
      console.info(nums.length); // 顯示2
      var pbook = new Array();
      pbook["David"] = 1;
      pbook["Jennifer"] = 2;
      console.info(pbook.length); // 顯示0

          clear是另外一種輔助方法,定義如下:

      function clear(){
          for (var key in this.datastore) {
              delete this.datastore[key];
          }
      }

          字典的主要用途是通過鍵取值,我們無需關系數據在字典中的實際存儲順序。然后很多人希望看到一個有序的字典。我的做法是先把鍵值對的所有鍵值取出來,放在一個數組中,然后對這個數組排序,最后按照排序后的順序輸出值,如下:

      function sort(){
          var keys = Array();
          for (var key in this.datastore) {
              keys.push( key );
          }
          keys.sort();
          for (var i=0; i<keys.length; i++) {
              document.write(keys[i] + '->' + this.datastore[keys[i]]);
              document.write('<br>');
          }
      }

       

      2.代碼實現

        下面看看上面所有的問題代碼:

      function Dictionary(){
          this.add = add;
          this.datastore = new Object();
          this.find = find;
          this.remove = remove;
          this.showAll = showAll;
          this.length = length;
          this.count = count;
          this.clear = clear;
          this.sort = sort;
      }
      
      function add(key, value){
          this.datastore[key] = value;
      }
      
      function find(key){
          return this.datastore[key];
      }
      
      function remove(key){
          delete this.datastore[key];
      }
      
      function count(){
          var n = 0;
          for (var key in this.datastore) {
              ++n;
          }
          return n;
      }
      
      function showAll(){
          for (var key in this.datastore) {
              document.write(key + '->' + this.datastore[key]);
              document.write('<br>');
          }
      }
      
      function sort(){
          var keys = Array();
          for (var key in this.datastore) {
              keys.push( key );
          }
          keys.sort();
          for (var i=0; i<keys.length; i++) {
              document.write(keys[i] + '->' + this.datastore[keys[i]]);
              document.write('<br>');
          }
      }
      
      function clear(){
          for (var key in this.datastore) {
              delete this.datastore[key];
          }
      }
      
      var pbook = new Dictionary();
      pbook.add("Raymond","123");
      pbook.add("David", "345");
      pbook.add("Cynthia", "456");
      
      pbook.showAll();
      document.write('after sort:' + '<br>')
      pbook.sort();
      
      document.write("Number of entries: " + pbook.count() + '<br>');
      document.write("David's extension: " + pbook.find("David") + '<br>');
      pbook.showAll();
      pbook.clear();
      document.write("Number of entries: " + pbook.count() + '<br>');

      上面代碼在瀏覽器下的輸出結果如下:

       

      posted @ 2017-01-15 21:26  nd  閱讀(21568)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 国产一区二区一卡二卡| 亚洲www永久成人网站| 亚洲欧洲一区二区综合精品| 免费AV片在线观看网址| 亚洲色www永久网站| 亚洲av高清一区二区三| 国产另类ts人妖一区二区| 国产麻豆精品手机在线观看| 久久综合给合久久狠狠狠88| 人妻蜜臀久久av不卡| 欧美叉叉叉bbb网站| 亚洲AV永久中文无码精品综合| 国产精品亚洲中文字幕| 亚洲国产区男人本色vr| 久久综合国产一区二区三区 | 国产三级国产精品国产专区| 日韩精品人妻中文字幕| 国产一区视频一区欧美| 国产色无码专区在线观看| 国产一区二区三区AV在线无码观看| 婷婷五月综合激情| 一区二区三区无码高清视频| 午夜成年男人免费网站| 亚洲日本韩国欧美云霸高清| 亚洲日韩av在线观看| 亚洲精品久久国产高清小说| 重口SM一区二区三区视频| 嵊泗县| 亚洲综合一区二区三区在线| 无套内射视频囯产| 新蔡县| av在线播放日韩亚洲欧| 中文人妻AV大区中文不卡 | av午夜福利一片免费看久久| 亚洲午夜久久久影院伊人| 久久婷婷综合色一区二区| 成人拍拍拍无遮挡免费视频| 久久综合九色综合久桃花| 色噜噜狠狠成人综合| 人妻无码∧V一区二区| 在线中文字幕国产一区|