字典时一个很有用的工具,在之前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上面找到一个写的比较全的,在他的基础上,我做了稍许修改,提取了我需要的部分

代码如下:

     function Dictionary() {
this.datastore = new Array();
this.add = function (key, value) {
this.datastore[key] = value;
}
this.find = function (key) {
return this.datastore[key];
}
}

然后实例化Dictionary类

 var adddevide = new  Dictionary();

开始遍历数组,传值,代码如下:

 //设备编号字典
function dictionarydevice(list) {
var length = list.length;
//存贮设备ID
var ID = "";
//存储设备名称
var Name = ""; var i = 0;
var ii = 0;
var iii = 0; for( i = 0;i<length;i++){
ID = list[i].szAreaID;
Name = list[i].szAreaName;
adddevide.add(ID,Name);
if(list[i].lsSites.length === 0){
break;
}
else{
for( ii = 0;ii<list[i].lsSites.length;ii++){
ID = list[i].lsSites[ii].szSiteID;
Name = list[i].lsSites[ii].szSiteName;
adddevide.add(ID,Name);
if(list[i].lsSites[ii].lsDevices.length === 0){
break;
}
else{
for( iii = 0;iii<list[i].lsSites[ii].lsDevices.length;iii++) {
ID = list[i].lsSites[ii].lsDevices[iii].szDeviceID;
Name = list[i].lsSites[ii].lsDevices[iii].szDeviceName;
adddevide.add(ID, Name);
}
}
}
}
} alert(adddevide.find("JS0101"));
}

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

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

  1. Google Map JavaScript API V3 实例大全

    Google Map JavaScript API V3 实例大全 基础知识 简单的例子 地理位置 语言 位置 坐标 简单的投影 事件 简单事件 关闭事件 多次添加事件 事件属性 控制 php禁用ui ...

  2. javascript字典数据结构Dictionary实现

    <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat=&qu ...

  3. JavaScript 字典

    JavaScript 字典 字典以 key value 形式出现 使用: a = {'k1':'v1,''k2':'v2'} 获取值: a['k1'] 获取值:v1

  4. javaScript 面向对象开发实例

    javaScript 面向对象开发实例 这个是结合require的模块化开发,首先创建构造函数: //test.js 1 function Test(lists) { var config={ nam ...

  5. javascript 字典类型的使用

    javascript  字典类型的使用 1.使用Array: var arr = new Array(); arr["zs"] = "zhangsan"; ar ...

  6. JavaScript 字典(Dictionary)

    TypeScript方式实现源码 //  set(key,value):向字典中添加新元素. //  remove(key):通过使用键值来从字典中移除键值对应的数据值. //  has(key ...

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

    Javascript中的数据值有两大类:基本类型的数据值和引用类型的数据值. 基本类型的数据值有5种:null.undefined.number.boolean和string. 引用类型的数据值往大的 ...

  8. JavaScript模板引擎实例应用

    在之前的一篇名为<移动端基于HTML模板和JSON数据的JavaScript交互>的文章中,我向大家说明了为什么要使用JavaScript模板以及如何使用,文末还提到了laytpl.art ...

  9. JavaScript学习笔记-实例详解-类(一)

    实例详解-类(一): //每个javascript函数(除了bind())都自动拥有一个prototype对象// 在未添加属性或重写prototype对象之前,它只包含唯一一个不可枚举属性const ...

随机推荐

  1. /编写一个函数,要求从给定的向量A中删除元素值在x到y之间的所有元素(向量要求各个元素之间不能有间断), 函数原型为int del(int A ,int n , int x , int y),其中n为输入向量的维数,返回值为删除元素后的维数

    /** * @author:(LiberHome) * @date:Created in 2019/2/28 19:39 * @description: * @version:$ */ /* 编写一个 ...

  2. Codeforces 1072 - A/B/C/D - (Done)

    链接:http://codeforces.com/contest/1072/ A - Golden Plate - [计算题] #include<bits/stdc++.h> using ...

  3. 消息服务jms

    jms是java消息服务的规范,也即接口,activemq是实现.队列模型和发布订阅模型很像,区别就是队列,多个消费者消费不同的消息(这些消费者整体消费完生产者生产的队列的消息),发布订阅模型是多个消 ...

  4. input type = file 上传图片转为base64

    项目背景是做图片识别,接口需要上传图片格式为base64格式的,react项目的相关代码: let reader = new FileReader();reader.readAsDataURL(e.t ...

  5. JAVA基础——集合——HashMap

    HashMap集合: 常用方法(JDK1.8):   从此映射中移除所有映射关系(元素): public void clear()   返回此 HashMap 实例的浅表副本:并不复制键和值本身: p ...

  6. Python开发环境Linux配置

    1. 在Windows下安装Linux的连接工具(XShell),选免费的 2.虚拟机安装,注意BIOS对虚拟机使用的设置(enable) 3.虚拟机安装好修改yum源(用阿里云的):https:// ...

  7. Python Async/Await入门指南

    转自:https://zhuanlan.zhihu.com/p/27258289 本文将会讲述Python 3.5之后出现的async/await的使用方法,以及它们的一些使用目的,如果错误,欢迎指正 ...

  8. Asynchronous Programming

    https://msdn.microsoft.com/zh-cn/library/dd997423.aspx http://www.cnblogs.com/luminji/archive/2010/0 ...

  9. mysql数据库定义某字段为唯一约束

    第二:根据以上图片的第四步获得sql语句,并执行sql语句就可以了

  10. 使用dbeaver查mysql的表会导致锁表的问题

    查询完成之后接着需要使用rollback,不然其它session没法执行语句.