浏览 2339 次
精华帖 (1) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (4)
|
|
---|---|
作者 | 正文 |
发表时间:2009-05-17
最后修改:2009-05-17
功能介绍: 1. JHelper.Utils工具包 Utils.StringBuffer,// 字串累加,在10000次的字串累加测试中,与" "+" "相比,快13倍 Utils.List, // 序列集合 Utils.SortList, // 有序集合 Utils.Set, // 不包含重复元素的序列集合 Utils.SortSet, // 不包含重复元素的有序集合 Utils.Map // 键值对应的集合 Utils.Iterator // 迭代器 可以用Utils.Comparator进行自定义排序 // List使用: var list = new JHelper.Utils.List(); list.add("a"); list.get(0); // return "a" // Map使用 var map = new JHelper.Utils.Map(); map.put("name", "张三"); map.put("name2", "李四"); // 有排序的 SortList 使用 var sortList = new JHelper.Utils.SortList(); sortList.add("C"); sortList.add("a"); sortList.add("0"); sortList.add("A"); sortList.add("E"); sortList.add("A"); sortList.add("1"); // 列印出结果 var iter = sortList.iterator() while(iter.hasNext()) { document.write(iter.next() + "<br>"); } 输出的结果: 0 1 A A C E a // 自定义排序 var myComparator = function() { this.compare = function(o1, o2) { // 降序 return -(JHelper.Utils.compareTo(o1.name, o2.name)); }; }; var sortList = new JHelper.Utils.SortList(new myComparator()); sortList.add({name: "C"}); sortList.add({name: "a"}); sortList.add({name: "0"}); sortList.add({name: "A"}); sortList.add({name: "E"}); sortList.add({name: "A"}); sortList.add({name: "1"}); // 列印出结果 var iter = sortList.iterator() while(iter.hasNext()) { document.write(iter.next().name + "<br>"); } 输出结果: a E C A A 1 0 //这样就不用在某些情况下自行写那些复杂的JS集合了 // JHelper.Validate验证工具包 var check = new JHelper.Validate(); check.addCheckLength("name", "[姓名]必须在2~20位之间!", 2, 20); check.addCheckDateCompare("date1", "date2", "起值不可以大于迄值!", "yyyy/MM/dd"); alert(check.checkField() ? "成功" : "失败"); 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2009-05-18
最后修改:2009-05-18
用 java 的方式写 js …… 脑子进水了吧。
StringBuffer 是使用 Array.join 实现的,写起来还没有直接用 Array.join 简单,封装个头啊。 map 更是不可理解…… js 的对象已经是 map 了,难道 map.put("name", "张三"); 能比 map.name = "张三" 更简单? comparator 更搞笑…… 直接传个闭包不好么,非要封装,人都封装傻了。 iterator 有用吗? 看看“自定义排序”用 Prototype 的写法:(JE 的页面用了 Prototype,你可以直接打开 firebug 贴这段) "ca0AEA1".toArray().map(function(e){ return {name:e} }).sort(function(a,b){ return a.name > b.name }).each(function(e){ document.write(e.name + "<br/>") }) btw:java 集合框架的实现非常牛,但 api 极其。包闭持支不为因 —— B 傻 这个 JHelper 不但 api 脑残,实现也很脑残:stringCompare "字符串比对" 竟然写了 11 行…… 想不通,一个大于号就能做的事情还要重新实现一遍?? |
|
返回顶楼 | |
发表时间:2009-05-18
最后修改:2009-05-18
嘛嘛,也不用一棒子打死,毕竟还是有Java程序员喜欢"the Java way"的。
SortedList倒是可以弄弄,其它用起来确实还没JavaScript原本的方便。像是前两个例子, // "list"使用 var list = [] list.push('a') list[0] // return 'a' // "map"使用 var map = {} map['name'] = 'john' map['name2'] = 'smith' // 列印结果: for (var i in map) { document.write(map[i] + '<br />') } 说到底Java的verbose风格并不太适合JavaScript就是。要这样写JavaScript还不如直接用Java+GWT来写的好。 |
|
返回顶楼 | |
发表时间:2009-05-18
最后修改:2009-05-18
可以当自己的兴趣,折腾几下,自娱自乐一把。
不过这中做法并不推荐。 http://jindw.iteye.com/blog/188191 引用 * 不要写那些中看不中用的集合。 不要模仿Java 集合API,去写什么 HashMap,ArrayList。JavaScript不相信这些,这个世界简单才是硬道理。 |
|
返回顶楼 | |