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上面找到一个写的比较全的,在他的基础上,我做了稍许修改,提取了我需要的部分
代码如下:
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 字典应用实例的更多相关文章
- Google Map JavaScript API V3 实例大全
Google Map JavaScript API V3 实例大全 基础知识 简单的例子 地理位置 语言 位置 坐标 简单的投影 事件 简单事件 关闭事件 多次添加事件 事件属性 控制 php禁用ui ...
- javascript字典数据结构Dictionary实现
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat=&qu ...
- JavaScript 字典
JavaScript 字典 字典以 key value 形式出现 使用: a = {'k1':'v1,''k2':'v2'} 获取值: a['k1'] 获取值:v1
- javaScript 面向对象开发实例
javaScript 面向对象开发实例 这个是结合require的模块化开发,首先创建构造函数: //test.js 1 function Test(lists) { var config={ nam ...
- javascript 字典类型的使用
javascript 字典类型的使用 1.使用Array: var arr = new Array(); arr["zs"] = "zhangsan"; ar ...
- JavaScript 字典(Dictionary)
TypeScript方式实现源码 // set(key,value):向字典中添加新元素. // remove(key):通过使用键值来从字典中移除键值对应的数据值. // has(key ...
- 关于Javascript中通过实例对象修改原型对象属性值的问题
Javascript中的数据值有两大类:基本类型的数据值和引用类型的数据值. 基本类型的数据值有5种:null.undefined.number.boolean和string. 引用类型的数据值往大的 ...
- JavaScript模板引擎实例应用
在之前的一篇名为<移动端基于HTML模板和JSON数据的JavaScript交互>的文章中,我向大家说明了为什么要使用JavaScript模板以及如何使用,文末还提到了laytpl.art ...
- JavaScript学习笔记-实例详解-类(一)
实例详解-类(一): //每个javascript函数(除了bind())都自动拥有一个prototype对象// 在未添加属性或重写prototype对象之前,它只包含唯一一个不可枚举属性const ...
随机推荐
- ERP实施顾问--理解客户的解决方案与实际需求
在企业进行信息化时实施方的顾问都会来现场进行"需求调研",再根据"调研"的结果进行双方确认,确认后按此蓝本进行开发实施. 一切看上去都很美好,需求明确.开发顺利 ...
- 最短路(SPFA)
SPFA是Bellman-Ford算法的一种队列实现,减少了不必要的冗余计算. 主要思想是: 初始时将起点加入队列.每次从队列中取出一个元素,并对所有与它相邻的点进行修改,若某个相邻的点修改成功,则将 ...
- eclipse与hadoop-eclipse-plugin之间的版本对应关系
eclipse与hadoop-eclipse-plugin之间,版本互相不兼容,或者说,版本要求严格. 把hadoop-eclipse-plugin复制到eclipse的plugins目录下以后,如果 ...
- Codeforces 1062 - A/B/C/D/E - (Undone)
链接:http://codeforces.com/contest/1062 A - Prank - [二分] 题意: 给出长度为 $n(1 \le n \le 100)$ 的数组 $a[1 \sim ...
- Linux是cat、tail、head查看文件任意几行的数据
Linux是cat.tail.head查看文件任意几行的数据 一.使用cat.tail.head组合 1.查看最后100行的数据 cat filename | tail -n 100 2.查看100到 ...
- 018-并发编程-java.util.concurrent.locks之-ReentrantReadWriteLock可重入读写锁
一.概述 ReentrantLock是一个排他锁,同一时间只允许一个线程访问,而ReentrantReadWriteLock允许多个读线程同时访问,但不允许写线程和读线程.写线程和写线程同时访问.相对 ...
- vue 环境报错 chromedriver@2.44.1 install: `node install.js`
解决办法: 1. yarn add chromedriver -g 2.yarn add chromedriver --chromedriver_cdnurl=http://cdn.npm.taoba ...
- 理解Deadlock
问:为啥以下代码会产生死锁 public class Deadlock { static class Friend { private final String name; public Friend ...
- iOS开发笔记错误集
错误类型列举 错误类型A:EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0) 错误类型B:EXC_BREAKPOINT (code=EXC_A ...
- 6种原型设计工具大比对! Axure,Invision, 墨刀……哪款适合你?
每一年的毕业季都是找工作高峰时期,产品经理.UI设计师这些岗位都会接触到原型设计工具.选择原型设计工具最重要的一点:适合自己的才是最好的! 下文将对目前超火的原型工具进行大对比,快来看看那一款于你而言 ...