js的数据结构------字典(Dictionary)键值对格式
2018-12-14 14:58
1561 查看
最近在写前端,哈哈哈哈,然后遇到一个问题。
在常量初始化的时候,没有类似后台语言的键值对Map,然后百度一下,看一写文档,来自定义一个。
首先是用到js的面向对象思想,底层还是使用js的Array类。
4000 [code]/** * Created by limeng on 2018/12/14. */ function Dictionary(){ this.dataSource = []; this.add = add; this.remove = remove; } function add( key , value ){ this.dataSource[key] = value; } function remove( key ){ if( this.dataSource[key] ) delete this.dataSource[key]; else return undefined; }
在你需要的地方,那我们就需要new Dictionary类,然后进行添加数据。例如,按照不同时间维度进行查询一定时间的数据
[code] var time = new Dictionary(); time.add("D","天"); time.add("M","月"); time.add("Q","年"); time.add("Y","年");
定义完之后,我们需要将这些数据取出,得到一个这样的下拉框
[code]<select class="time"> <option value='D'>天</option> <option value='M'>月</option> <option value='Q'>季</option> <option value='Y'>年</option> </select>
再一步,就是需要循环取出
[code]function initTime() { console.log(time.dataSource); var allTime = Object.keys(time.dataSource).sort(); for( var key in AllTime){ $(".time").append("<option value='"+allTime[key]+"'>"+time.dataSource[allTime[key]]+"</option>") } }
其中循环取出的时候我们用到了一个js函数,Objective.keys,它的官方解释为
参考网址:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Object/keys
为了方便理解,用一下F12调试,看一下它代表什么。
在监控表达式中我们可以看到,其中allTime是一个字符串数组,它放着我们的字典键值,key 代表就是 数组下标[0,1,2,3],所以在取出我们time的Value值的时候 ,就需要 time.dataSource[allTime[key]]来取出。
好了这样就可以得到我们的下拉框啦。
阅读更多
相关文章推荐
- NSMutableDictionary 用set方法初始化的字典 里边的键值不可修改
- Dictionary<T,T>键值对集合(字典)
- js:数据结构笔记6--字典
- python---语句与数据结构应用,迭代、迭代字典、字典排序、字典根据键值查找键、sorted排序方法、translate与maketrans、with语句
- sizzle.js学习笔记利用闭包模拟实现数据结构:字典(Map)
- C# 把数据字典表的数据自动生成为 js 键值对形式
- js键值对Dictionary
- ASP的数组不支持键值对,可用Scripting.Dictionary字典对象实现
- C# 字典 Dictionary 转 JSON 格式遍历
- c# 将json中的数据转为键值的形式放入字典Dictionary并进行拼接md5加密
- AngularJS Post 表单键值对格式
- js日期格式互转
- JS 输入框银行卡格式 (三)
- iOS开发-post请求向服务器发送json格式数据(数组或字典)
- js 异步加载和json格式
- 解决JS中各浏览器Date格式不兼容的问题
- js键值查询、验证
- 数据结构键值HashMap之自己编写简单的HashMap
- 将等号作为键值的js字符串转json
- JS语法字典---网友总结