Javascript 字典應用執行個體

來源:互聯網
上載者:User

標籤:一個   for   ==   部分   isp   name   ide   pre   關係   

字典時一個很有用的工具,在之前C#項目中有經常使用,這篇博文主要講解在Javascript中,字典的實際應用情境

首先在JS中,是沒有Dictionary‘類的,我們需要實現索引值(KEY) -- 數值(VALUE)的對應關係,最好的辦法就是用數組

首先交代下背景,我需要根據數組裡的網站編號,擷取到對應的網站名稱

首先通過Thrift介面,擷取到資料庫裡面的裝置資訊,通過Ajax傳輸到js頁面,遍曆數組

PS : 資料結構如下:

# 裝置資訊  struct Device{int id,# string name,.....};

# 網站資訊  struct Site{int id,# string name,.....,list<Device> lsDevices};

# 地區資訊  struct Area{int id,# string name,.....,list<Site> lsSites};

首先擷取到地區資訊,然後根據list<Site> lsSites的length判斷有無網站,如果有,擷取資訊,以此類推

我在CSDN上面找到一個寫的比較全的,網址如下:http://www.cnblogs.com/baiyangyuanzi/p/6689554.html,在他的基礎上,我做了稍許修改,提取了我需要的部分

代碼如下:

1     function Dictionary() {2         this.datastore = new Array();3         this.add = function (key, value) {4             this.datastore[key] = value;5         }6         this.find =  function (key) {7             return this.datastore[key];8         }9     }
View Code

然後執行個體化Dictionary類

 var adddevide = new  Dictionary();

開始便利數組,傳值,代碼如下:

 1 //裝置編號字典 2     function  dictionarydevice(list) { 3         var length = list.length; 4         //存貯裝置ID 5         var ID = ""; 6         //存放裝置名稱 7         var Name = ""; 8  9         var i = 0;10         var ii = 0;11         var iii = 0;12 13         for( i = 0;i<length;i++){14             ID =  list[i].szAreaID;15             Name =  list[i].szAreaName;16             adddevide.add(ID,Name);17             if(list[i].lsSites.length === 0){18                break;19             }20             else{21                 for( ii = 0;ii<list[i].lsSites.length;ii++){22                     ID =  list[i].lsSites[ii].szSiteID;23                     Name =  list[i].lsSites[ii].szSiteName;24                     adddevide.add(ID,Name);25                     if(list[i].lsSites[ii].lsDevices.length === 0){26                         break;27                     }28                     else{29                         for( iii = 0;iii<list[i].lsSites[ii].lsDevices.length;iii++) {30                             ID = list[i].lsSites[ii].lsDevices[iii].szDeviceID;31                             Name = list[i].lsSites[ii].lsDevices[iii].szDeviceName;32                             adddevide.add(ID, Name);33                         }34                     }35                 }36             }37         }38 39         alert(adddevide.find("JS0101"));40     }
View Code

運行程式,出現JS0101對應的網站,字典完成

Javascript 字典應用執行個體

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.