今天业务上的需求,前台需要类似java集合list或者set那样的工具或者类型来处理一个比价复杂的业务,js中是没有这种集合工具的,用数组吧考虑了下还是长久下,写个类似的简单工具,做成公共js,然后后期不断完善和优化,以后用起来就很方便了,这里就记录和分享下我的代码,确切的说很不完善,和java中ArrayList功能还差一些,一些地方也待优化,不过可以临时救急用,网上搜到一两篇就,不过还有很多bug,我下边的js代码都是测试过的,基本都可以正常使用,很多功能如构造方法、非法数据处理及异常的处理等有待完善。
后期如有时间的话,再完善和优化原有的基础上,会用js实现java中的LinkedList,HashSet,HashMap等类似集合的工具类,以方便开发中使用,声明下,时间仓促,功能简单,如代码中处理不得当的地方,十分恳请您留言,必有重谢!
/*
*定义一个类似java中List集合的对象并添加对应常用方法
*功能比较简易,远不如真正List强大而高效,暂目前满足几个需求即可,待后续完善优化
*@author 陈磊兴
*@date 2015-09-10
*/
//List定义
function List(){
this.table=new Array();
}
//get方法
List.prototype.get=function(i){
return this.table[i];
}
//add方法
List.prototype.add=function(o){
this.table.push(o);
}
//indexOf方法,无返回-1,如有首次出现的元素索引
List.prototype.indexOf=function(o){
var c=-1;
for(var i=0;i<this.table.length;i++){
if(this.table[i]==o){
c=i;
break;
}
}
return c;
}
//contain方法
List.prototype.contain=function(o){
var e=false;
for(var i=0;i<this.table.length;i++){
if(this.table[i]==o){
e=true;
break;
}
}
return e;
}
//removeAt方法根据索引,返回被移除的元素
List.prototype.removeAt=function(i){
if(this.table.length==0 || i<0 || i>(this.table.length-1)){
return ;
}
var t=[];
for(var h=0;h<i;h++){
t.push(this.table[h]);
}
for(var f=i+1;f<this.table.length;f++){
t.push(this.table[f]);
}
var e=this.table[i];
this.table=t;
return e;
}
//removeObj方法移除首次出现的指定元素返回true或false,如果有
List.prototype.removeObj=function(o){
var i=this.indexOf(o);
var s=false;
if(i!=-1){
this.removeAt(i);
s=true;
}
return s;
}
//toArray方法CSDN
List.prototype.toArray=function(){
return this.table;
}
//toString方法
List.prototype.toString=function(){
var s="";
for(var i=0;i<this.table.length;i++){
s+=this.table[i].toString();
if(i!=this.table.length-1){
s+=',';
}
}
return s;
}
//size方法
List.prototype.size=function(){
return this.table.length;
}
var list=new List(),然后直接在线测试运行一下http://runjs.cn/code
分享到:
相关推荐
除了list,还可以使用数组、集合等数据结构实现假分页。在Web开发中,前端也可以实现类似功能,通过JavaScript在客户端进行分页,减轻服务器负担。 总之,"list假分页的demo"展示了如何在内存中利用list实现分页...
Java面试题集合通常涵盖了许多核心概念和技术,是评估求职者技能和知识深度的重要方式。以下是一些面试中常出现的Java相关知识点: 1. **逗号分隔字符串转数组**: - 可以使用`String.split()`方法,传入逗号作为...
Java的集合框架,如List和Set,可以帮助管理这些关系。 6. **搜索功能**:利用Elasticsearch这样的全文搜索引擎,可以提供高效、智能的搜索体验,帮助用户快速找到感兴趣的话题。 7. **系统性能优化**:为了保证高...
WebSocket4J 是一个用 Java 实现的 WebSocket 协议的类库,可使用 Java 来构建交互式 Web 应用。WebSocket4J 并未实现客户端通讯协议,所以不能用它来连接 WebSocket 服务器。 Struts验证码插件 JCaptcha4Struts2 ...
这些文档为开发者提供了清晰的指南,以理解和使用各种技术,如CSS、JavaScript和Java API等。以下是关于这些关键开发工具的详细知识点: 1. CSS (层叠样式表): - CSS是用于描述HTML或XML(包括SVG、MathML等各种...
`CList`可能实现了`java.util.List`接口,这样可以使用如`add()`, `remove()`, `get()`, `size()`等标准的集合操作。此外,为了实现循环链表特有的功能,可能会有自定义的方法,如`startTraversal()`用于开始遍历,...
4. **集合框架**:Java集合框架是存储和管理对象的重要工具,包括List、Set、Queue、Map等接口及其实现类,如ArrayList、LinkedList、HashSet、HashMap等,了解它们的特点和使用场景至关重要。 5. **输入/输出(I/O)...
1. **Java基础**:这是项目的基石,包括面向对象编程概念(类、对象、继承、多态、封装)、异常处理、集合框架(List、Set、Map)以及Java IO流。 2. **Servlet与JSP**:在Java Web开发中,Servlet用于处理客户端...
在Java应用中,经常会遇到需要将Java对象或集合等数据结构转换为JSON字符串的需求。例如,在与Web服务交互时,通常会将Java对象序列化为JSON字符串以便于传输。 #### 二、核心类与方法介绍 在所提供的代码片段中,...
学习数组、集合(如List、Set、Map等)等数据结构的使用。 掌握异常处理机制,理解try-catch-finally的使用场景。 深入学习多线程与并发编程,理解线程的基本概念、线程同步与通信等。 IO与网络编程 学习文件IO和...
虽然此功能在后续版本中被弃用,但在3.4时期,Nashorn可以用于 Neo4j的脚本执行或集成。 6. **Date和Time API增强**:Java 8对日期和时间API进行了重大改进,提供了`java.time`包,包括`LocalDate`, `LocalTime`, `...
JavaScript API虽然在此描述中一同提及,但它们是两个不同的技术领域,这里主要讨论Java 1.5 API的相关知识点。 1. 泛型(Generics):Java 1.5引入了泛型,允许在类、接口和方法声明中使用类型参数,增强了类型...
2. Java集合框架:Java集合框架(Collections Framework)是Java API的一部分,包括List、Set、Queue、Map等接口和实现。培训课程会教授如何高效使用Vector、ArrayList、LinkedList、HashMap、HashSet等集合来管理...
- **Applet**:Java小应用程序,可以在浏览器中运行,但现代Web开发更多使用JavaScript等技术。 10. **Java Development Kit (JDK)和集成开发环境(IDE)** - **JDK**:包含Java编译器javac、JVM和各种开发工具。 ...
8. **集合框架**:List、Set和Map接口的介绍,以及ArrayList、LinkedList、HashSet、HashMap等常见实现类的使用方法。 9. **输入/输出流**:了解IO流的概念,包括文件操作、字节流和字符流,以及缓冲流的使用。 10...
- **集合框架**:Java集合框架提供了多种用于存储和操作数据的接口和实现,包括List、Set、Map等。了解集合框架的原理及其使用方式有助于更好地组织和管理数据。 #### 第八章:IO流 - **IO流基础**:Java提供了...
4. **集合框架**:Java集合框架是处理对象集合的重要工具,包括List、Set、Map等接口及其实现类。JDK 5.0对集合框架进行了优化,如ArrayList、LinkedList、HashSet、HashMap等,以及泛型的引入,使得集合操作更加...
同时,可能涉及到Java集合框架(如List、Set、Map等)和异常处理。 2. **MVC设计模式**:模型-视图-控制器模式是Web应用开发中常见的架构模式,用于分离业务逻辑、数据处理和用户界面。 3. **Spring框架**:Spring...
WebSocket4J 是一个用 Java 实现的 WebSocket 协议的类库,可使用 Java 来构建交互式 Web 应用。WebSocket4J 并未实现客户端通讯协议,所以不能用它来连接 WebSocket 服务器。 Struts验证码插件 JCaptcha4Struts2 ...