编码实现js的Set

编码实现js的Set

 1 /**
 2 *
 3 * Set
 4 *
 5 * @author: 阿宁
 6 *
 7 * @date:   2017年5月30日
 8 *
 9 */
10 (function(global){
11
12     function Set(){
13         this.values = {};
14         this.n = 0;
15         this.add.apply(this,arguments);
16     }
17
18     Set.prototype.add = function(){
19         for(var i = 0; i < arguments.length; i++){
20             var val = arguments[i];
21             var key = Set._v2s(val);
22             if(!this.values.hasOwnProperty(key)){
23                 this.values[key] = val;
24                 this.n++;
25             }
26         }
27         return this;
28     };
29
30     Set.prototype.remove = function(){
31         for(var i = 0; i < arguments.length; i++){
32             var key = Set._v2s(arguments[i]);
33             if(this.values.hasOwnProperty(key)){
34                 delete this.values[key];
35                 this.n--;
36             }
37         }
38         return this;
39     };
40
41     Set.prototype.contain = function(val){
42         return this.values.hasOwnProperty(Set._v2s(val));
43     };
44
45     Set.prototype.foreach = function(f,c){
46         for(var key in this.values){
47             if(this.values.hasOwnProperty(key)){
48                 f.call(c,this.values[key]);
49             }
50         }
51         return this;
52     };
53
54     Set._v2s = function(val){
55         switch(val){
56             case undefined:return "u";
57             case null:return "n";
58             case true:return "t";
59             case false: return "f";
60             default:switch(typeof val){
61                 case "number":return "#" + val;
62                 case "string":return "\"" + val;
63                 default : return "@" + objectId(val);
64             }
65         }
66         function objectId(val){
67             var prop = "|**objectid**|";
68             if(!val.hasOwnProperty(prop)){
69                 val[prop] = Set._v2s.next++;
70             }
71             return val[prop];
72         }
73     };
74
75     Set._v2s.next = 100;
76
77     global.Set = Set;
78
79 })(this);
时间: 2024-08-09 19:52:44

编码实现js的Set的相关文章

utf-8页面展示 gbk编码的js,gbk中有中文

index.html <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv=&qu

&lt;&lt;&lt; html编码中js和html编码不一致导致乱码

在html中,有时把编码设置成UTF-8之后,引入js,页面不会有乱码,但是有关js的东西会出现乱码, 大概问题就是js默认编码不是UTF-8, 解决办法:将js文件用记事本打开,在另存为,保存的时候下面选项编码设置成html一致,就不会出现乱码 <<< html编码中js和html编码不一致导致乱码,布布扣,bubuko.com

【转】关于URL编码/javascript/js url 编码/url的三个js编码函数

来源:http://www.cnblogs.com/huzi007/p/4174519.html 关于URL编码/javascript/js url 编码/url的三个js编码函数escape(),encodeURI(),encodeURIComponent() 本文为您讲述关于js(javascript)编码url的相关问题.(js中url编码&符号后传值给其它页面,多参数网址作为整体编码后传值.如:http://www.ilcng.com/index.html?id=http://ilcng

CSV.js – 用于 CSV 解析和编码的 JS 工具库

逗号分隔值(CSV )文件用于以以纯文本的形式存储表格化数据(数字和文本). CSV 文件包含任意数量的记录,通过某种换行符分隔,每条记录由字段,其他一些字符或字符串分隔,最常用的是文字逗号或制表符.CSV.js 是一个简单,超快的用于 CSV 解析和编码的 JavaScript 工具库,兼容浏览器,AMD 和 NodeJS 环境. 您可能感兴趣的相关文章 Web 开发中很实用的10个效果[附源码下载] 精心挑选的优秀jQuery Ajax分页插件和教程 12款经典的白富美型 jQuery 图片

关于URL编码/javascript/js url 编码/url的三个js编码函数

关于URL编码/javascript/js url 编码/url的三个js编码函数escape(),encodeURI(),encodeURIComponent() 本文为您讲述关于js(javascript)编码url的相关问题.(js中url编码&符号后传值给其它页面,多参数网址作为整体编码后传值.如:http://www.ilcng.com/index.html?id=http://ilcng.com/xmxy/?id1=1&id2=2)这个时候参数id所获得的值并不是 http:/

对于Unicode编码在js中和html中

1.对于Unicode在js中 var a="\u9102WQW121" 中"\"是需要转义的,直接在页面输出的效果 var b=JSON.stringify(a); json化之后 对于将"\"转义之后 输出效果 前台接受json化之后的值是 对于链接上要Unicode传参数的话,这将会是一个麻烦, 所以如果要是放到js中的链接的话,链接会多出一个斜杠,对于Unicode编码不建议转json之后发送,除非后台能对其做相应处理 2.对于html

java 在JS中的编码问题

在当前的web应用中,js操作页面元素的情况越来越多,尤其是通过js发起异步请求时遇到编码问题的情况经常出现.下面介绍在js中出现编码问题的几种情况. 1.外部引入js文件 在一个单独的js文件中包含字符串输入的情况,如: <html> <head> <script src="statics/javascript/script.js" charset="gbk"></script> 如果引入一个script.js脚本,

js前端、Java后台编码解码

由于信息在网络上传输的安全性以及中文传输问题,我们需要解决js前端对信息进行编码解码工作,同样需要在Java后天对js编码解码的结果进行反操作-解码编码. JS前端编码  ---> JAVA解码,如下: PS:当传递的某个参数值为一个链接(如:http://baidu.com?name=小许)时,需要对这个url作为一个参数进行编码,这时需要用到encodeURIComponent 这个函数 encodeURIComponent(url),这种编码情况下在后台的解码方式和encodeURI对应的

JS对url编码

关于url编码,js有三个函数.对应的,有三个解码方法,unescapse,decodeURI,decodeURIComponent.对应的,有三个解码方法,unescapse,decodeURI,decodeURIComponent. Escapse函数 ECMAScript v3 反对使用该方法,应用使用 decodeURI() 和 decodeURIComponent() 替代它. encodeURI和encodeURIComponent的区别 ;/?:@&=+$,#对于这些字符,enco