Javascript 字典应用实例

字典时一个很有用的工具,在之前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     }

然后实例化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     }

运行程序,出现JS0101对应的站点,字典完成

时间: 2024-08-17 12:02:14

Javascript 字典应用实例的相关文章

JavaScript发布/订阅实例

原文链接: Pub/Sub JavaScript Object原文日期: 2014年6月11日翻译日期: 2014年6月13日 翻译人员: 铁锚 高效AJAX网站的三大杀器: 事件代理, 浏览历史管理, 以及高效应用级 发布/订阅通信机制. 本博客的原文站点 同时使用了这三种技术,本文中作者将分享其中最简单的一个: 该网站使用的 一个微型 发布/订阅模块. 如果你不了解 发布/订阅 模式,那么可以将其类比为 你发表了一篇博文,所有人都可以订阅你的博客, 也类似于广播电台的工作方式: 有一个站台进

javaScript 面向对象开发实例

javaScript 面向对象开发实例 这个是结合require的模块化开发,首先创建构造函数: //test.js 1 function Test(lists) { 2 var config={ 3 name:lists.name, 4 sex:lists.sex 5 }; 6 this.init(config) 7 } 8 Radio.prototype = { 9 init: function(config) { 10 var self=this; 11 self.initContent(

【javascript】javascript常见正则表达式实例

javascript常见正则表达式实例 实例来源 1 var myRegExp = { 2 // 检查字符串是否为合法QQ号码 3 isQQ: function(str) { 4 // 1 首位不能是0 ^[1-9] 5 // 2 必须是 [5, 11] 位的数字 \d{4, 9} 6 var reg = /^[1-9][0-9]{4,9}$/gim; 7 if (reg.test(str)) { 8 console.log('QQ号码格式输入正确'); 9 return true; 10 }

javascript继承简单实例

javascript继承简单实例: 作为一门面向对象的语言,那么继承自然就是一大特征,下面是一段非常简单代码实例,它演示了实现继承的基本原理,有兴趣的或者恰好要学习此方面的朋友可以参阅一下,希望能够给大家来帮组. //继承 function Person(name,sex) { this.name=name; this.sex=sex; } Person.prototype.sayName=function() { alert(this.name); } Person.prototype.say

python中的字典应用实例

字典中的键使用时必须满足一下两个条件: 1.每个键只能对应一个项,也就是说,一键对应多个值时不允许的(列表.元组和其他字典的容器对象除外).当有键发生冲突时(即字典键重复赋值),取最后的赋值. >>> myuniversity_dict = {'name':'yuanyuan', 'age':18, 'age':19, 'age':20, 'schoolname':Chengdu, 'schoolname':Xinxiang} Traceback (most recent call la

关于Javascript中通过实例对象修改原型对象属性值的问题

Javascript中的数据值有两大类:基本类型的数据值和引用类型的数据值. 基本类型的数据值有5种:null.undefined.number.boolean和string. 引用类型的数据值往大的说就1种,即Object类型.往细的说有:Object类型.Array类型.Date类型.Regexp类型.Function类型等. 当原型对象的属性值为基本类型的数据值时,通过实例对象修改属性值从而引起原型对象的属性值发生变化的情况不会发生.当原型对象的属性值为引用类型的数据值时,通过实例对象修改

JavaScript String 对象实例深入研究

本文主要介绍并分析JavaScript中String对象的具体用法,以及和String对象相关的方法,方便开发者在JavaScript开发中更好地处理字符串. 1. 介绍 String 对象,对字符串进行操作,如:截取一段子串.查找字符串/字符.转换大小写等等. 2. 定义方式 2.1 new String(Value) 构造函数:返回一个内容为Value的String对象参数: ①value {String} :字符串 返回值: {String对象} 返回一个内容为Value的String对象

JavaScript模板引擎实例应用(转)

本文将举实例向大家讲解几个常用模板引擎的简单使用. 演示地址:模板引擎示例http://demo.52fhy.com/jstemp/ 准备工作 演示数据:blog.json结构: { "list": [ { "title": "这是title", "url": "http://www.cnblogs.com/52fhy/p/5271447.html", "desc": "摘要&

Javascript字典操作

<script type="text/javascript">        var dic = new Array();      //注意它的类型是Array        dic["zs"] = "张三";        dic["ls"] = "李四";        dic["ww"] = "王五";        dic["zl&qu