日期:2014-05-16 浏览次数:20349 次
之前写了一个 JS 自定义对象实现Java中的Map对象功能?,但是遭到许多人的指责,大家都说JS中已经有相关的实现。
当然,我非常感谢大家的批评,但是由于本人JS功底并不是特别好,所以可能绕弯走了远路,大家就当学习吧!
?
我查询了JS的API,发现了有Dictionary这个对象,那么我把这个对的相关属性和方法都看了一遍,做个例子大家看看,也是我的学习吧!
?
存储数据键和项目对的对象。
y = new ActiveXObject("Scripting.Dictionary")
Dictionary 对象等价于 PERL 联合数组。项目可以是数据的任何形式,并存储在数组中。每个项目都与一个具有唯一性的键相联。该键用于取得单个项目,并且通常是整数或字符串,但也可以是除数组以外的任何类型。
?
增加
?
var dic = new ActiveXObject("Scripting.Dictionary"); // 增加 dic.add ("a", "aaaaaa");
?
是否存在
?
if (dic.Exists("a")) alert("true"); else alert("false");
?
获得某值
?
alert(dic.Item("a"));
?
修改值
?
dic.Item("a") = "dddddd"; alert(dic.Item("a"));
?
修改主键
?
dic.Key("a") = "d"; alert(dic.Item("d"));
?
删除某值
?
dic.Remove("a");
?
删除所有的值
?
dic.RemoveAll();
?
根据条目遍历对象的值内容
?
var arr = (new VBArray(dic.Items())).toArray(); //获取条目 var str = ""; for (var i in arr) { //遍历该 dictionary str += arr[i] + "-"; } alert(str);
?
遍历对象的Key,然后获得内容条目
?
arr = (new VBArray(dic.Keys())).toArray(); // 获得主键 str = ""; for (var i in arr) { //遍历 dictionary str += arr[i] + "-" + dic(arr[i]) + " | "; } alert(str);
?
获得对象的条目数
var a = (new VBArray(dic.Keys())); // 获取主键 var s = ""; for (i = 0; i < dic.Count; i++) { //遍历 dictionary s += a.getItem(i) + "-" + dic(a.getItem(i)) + " | "; } alert(s);
?
想Map一样,Key和Value,使用JS内部的对象
?
以上是在火狐上运行的结果,也就是说这个对象是IE的对象,不属于标准之中,所以使用时注意点吧!
?
?最后:
由于近期大量小网站在未经同意情况下使用文章,现将我的博客地址公布如下,请您到ITEYE网站看原创,谢谢!
http://cuisuqiang.iteye.com/?!