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 ...
随机推荐
- php三级联动(html,php两个页面)
<!doctype html><html><head><meta charset="utf-8"><title>无标题文 ...
- CodeForces 733B Parade
B. Parade time limit per test1 second memory limit per test256 megabytes inputstandard input outputs ...
- 编译安装centos6.9 php7.0 mysql5.6 nginx1.8
2018年3月15日 11:41:40 注意文章时效! 此文章不是给新用户参考的,没有每一步的操作,请注意! yum -y groupinstall "Development Tools&q ...
- PHP调用接口用post方法传送json数据
1.核心代码: <?php require("helper.php"); header('content-type:text/html;charset=utf-8'); $k ...
- 解决端口耗尽问题: tcp_tw_reuse、tcp_timestamps
一.本地端口有哪些可用 首先,需要了解到TCP协议中确定一条TCP连接有4要素:local IP, local PORT, remote IP, remote PORT.这个四元组应该是唯一的. 在我 ...
- 扩容Linux文件系统
扩容Linux文件系统 腾讯云 云硬盘扩容 https://cloud.tencent.com/product/cbs https://cloud.tencent.com/document/produ ...
- Excel编辑栏字体显示大小
文件-> 选项-> 常规与保存-> 标准字体-> 确定 关闭文件,重启生效
- BMC ipmitool 对linux服务器进行IPMI管理
IPMI是智能型平台管理接口(Intelligent Platform Management Interface)的缩写,是管理基于 Intel结构的企业系统中所使用的外围设备采用的一种工业标准,该标 ...
- 3.1.2 Spring之IoC
二.Spring之IoC 1. IoC与DI (1) IoC 控制反转( IoC, Inversion of Control) , 是一个概念, 是一种思想. 控制反转就是对对象控制权的转移, 从程序 ...
- tplink路由器DMZ设置
设置完成后,DMZ主机访问不了? 请排查以下方面: 1.确认服务器搭建成功,即内网可以正常访问: 2.确认在DMZ主机中填写的服务器IP地址正确: 3.宽带直接连接服务器并配置上网,确认外网可以正常访 ...