js 自定义map
- <script>
- function HashMap(){this.map = {};}
- HashMap.prototype = {
- put : function(key, value){ this.map[key] = value;},
- get : function(key){
- if(this.map.hasOwnProperty(key)){ return this.map[key];}
- return null;
- },
- remove : function(key){
- if(this.map.hasOwnProperty(key)){ return delete this.map[key];}
- return false;
- },
- removeAll : function(){this.map = {};},
- keySet : function(){
- var _keys = [];
- for(var i in this.map){
- _keys.push(i);
- }
- return _keys;
- }
- };
- HashMap.prototype.constructor = HashMap;
- //排序方法
- function compare(val1,val2) {
- // 转换为拼音
- //val1 = Pinyin.getFullChars(val1).toLowerCase();
- //val2 = Pinyin.getFullChars(val2).toLowerCase();
- // 获取较长的拼音的长度
- var length = val1.length > val2.length ? val1.length:val2.length;
- // 依次比较字母的unicode码,相等时返回0,小于时返回-1,大于时返回1
- for(var i = 0; i < length; i++ ){
- var tmp_val1 = isNaN(val1.charCodeAt(i)) ? 0:val1.charCodeAt(i);
- var tmp_val2 = isNaN(val2.charCodeAt(i)) ? 0:val2.charCodeAt(i);
- var differ = tmp_val1 - tmp_val2;
- //console.log(tmp_val1+" "+tmp_val2);
- //console.log(differ);
- if(differ == 0) {
- continue;
- }else {
- //if(val1.charAt(i) == '_' ) {
- //return -1;
- //}
- return differ;
- }
- }
- //if(i == length) {
- // return val1.length - val2.length;
- //}
- }
- //init map
- var hashMap = new HashMap();
- //add value
- hashMap.put('key111' ,'value1');
- hashMap.put('key3' ,'value3');
- hashMap.put('key' ,'value2');
- hashMap.put('aa' ,'value2');
- hashMap.put('bbbbbb' ,'value2');
- var hash_keyset = hashMap.keySet();
- for(var i=0; i<hash_keyset.length; i++){
- var key = hash_keyset.sort(compare)[i];//key排序
- //var key = hash_keyset[i];//不排序
- //alert(key+" "+hashMap.get(key));
- console.log(key+" "+hashMap.get(key));
- }
- </script>
js 自定义map的更多相关文章
- JS自定义 Map
<script>function HashMap(){this.map = {};}HashMap.prototype = { put : function(key, value){ th ...
- ACE.js自定义提示实现方法
ACE.js自定义提示实现方法 时间 2015-11-19 00:55:22 wsztrush's blog 原文 http://wsztrush.github.io/编程技术/2015/11/0 ...
- javascript 自定义Map
迁移时间:2017年5月25日08:24:19 Author:Marydon 三.自定义Map数据格式 需特别注意的是: js中没有像java中的Map数据格式,js自带的map()方法用于:返回 ...
- js自定义验证码
分享一个js自定义的验证码 window.onload = function () { var code; $('.changePassword').click(function () ...
- js自定义弹出框
js自定义弹出框: 代码如下 <html> <head><title>自定义弹出对话框</title> <style type ="te ...
- 超酷HTML5 Canvas图表应用Chart.js自定义提示折线图
超酷HTML5 Canvas图表应用Chart.js自定义提示折线图 效果预览 实例代码 <div class="htmleaf-container"> <div ...
- 与你相遇好幸运,Sails.js自定义responses
在 /api/responses/ 新建文件 >serviceDBError.js 自定义的数据库错误 >serviceError.js 自定义的数据错误 >serviceSucc ...
- js模拟Map对象,实现key---value
js模拟Map对象,实现key---value 根据java中map的属性,实现key----value保存 function Map() { var struct = function (key, ...
- jquery.validate.js默认配置,jquery.validate.js自定义提示信息
jquery.validate.js默认配置,jquery.validate.js自定义提示信息 配置jQuery.validator默认的处理方法 >>>>>>& ...
随机推荐
- Docker 里面新建mysql 容器
1.获取MySQL镜像, a.直接从docker hub 下载docker镜像 docker pull +镜像名称 b.从别的项目上把镜像export出来 dockr load i + 镜像的TAR ...
- php用户签到,领取红包
<?php /** * create by jxkshu * Date 2017-09-28 * 用户签到领取红包 */ /** Redis set: key signed:user:mark ...
- MySQL-创建测试数据
简单的方法(每次增加一倍): insert into tb_user(f_id, f_username) select rand(), f_username from tb_user
- 云计算openstack共享组件——Memcache 缓存系统
一.缓存系统 静态web页面: 1.工作流程: 在静态Web程序中,客户端使用Web浏览器(IE.FireFox等)经过网络(Network)连接到服务器上,使用HTTP协议发起一个请求(Reques ...
- apicloud地图、即时通讯、人脸识别登录、以及平时踩过得坑
apicloud技术浅谈 导语 apicloud 的学习也有一段时间了,这是我个人的一些经验,和踩过的坑,希望对大家能有一些帮助. apicloud的知识准备 apicloud 是一个用原生的思想搭建 ...
- 有趣的linux指令
1.cmatrix sudo apt-get update sudo apt-get install cmatrix 2.asciiquarium wget http://search.cpan.or ...
- python网络编程中互斥锁与进程之间的通信
一.互斥锁 进程之间数据隔离,但是共享一套文件系统,因而可以通过文件来实现进程直接的通信,但问题是必须自己加锁处理. 注意:加锁的目的是为了保证多个进程修改同一块数据时,同一时间只能有一个修改,即串行 ...
- MySql-第七篇单表查询
1.MySQL中可以使用+.-.*./. 1>但MySQL中没有提供字符串连接运算符,可以使用concat(a_str,'xxx')进行连接. 2>在算术表达式中使用null,将会导致整个 ...
- [LOJ3123] CTSC2019重复
Description 给定一个⻓为 n 的字符串 s , 问有多少个⻓为 m 的字符串 t 满足: 将 t 无限重复后,可以从中截出一个⻓度为 n 且字典序比 s 小的串. m ≤ 2000 n ≤ ...
- Python入门习题9.数码管时间
#七段数码管.py import turtle,datetime def drawGap(): #绘制数码管间隔 turtle.penup() turtle.fd(5) def drawLine(dr ...