`

用js模拟的List

 
阅读更多

/*
 * List 大小可变数组
 *  author: 吴安国
 * version: 1.0
 */
function List() {
	this.list = new Array();
};

/**
 * 将指定的元素添加到此列表的尾部。
 * @param object 指定的元素
 */
List.prototype.add = function(object) {
	this.list[this.list.length] = object;
};

/**
 * 将List添加到此列表的尾部。
 * @param listObject 一个列表
 */
List.prototype.addAll = function(listObject) {
	this.list = this.list.concat(listObject.list);
};

/**
 *  返回此列表中指定位置上的元素。
 * @param index 指定位置
 * @return 此位置的元素
 */
List.prototype.get = function(index) {
	return this.list[index];
};

/**
 * 移除此列表中指定位置上的元素。
 * @param index 指定位置
 * @return 此位置的元素
 */
List.prototype.removeIndex = function(index) {
	var object = this.list[index];
	this.list.splice(index, 1);	
	return object;
};

/**
 * 移除此列表中指定元素。
 * @param object 指定元素
 * @return 此位置的元素
 */
List.prototype.remove = function(object) {
	var i = 0;
	for(; i < this.list.length; i++) {		
		if( this.list[i] === object) {
			break;
		}		
	} 
	if(i >= this.list.length) {
		return null;
	} else {
		return this.removeIndex(i);
	}
};

/**
 * 移除此列表中的所有元素。
 */
List.prototype.clear = function() {
	this.list.splice(0, this.list.length);
};

/**
 * 返回此列表中的元素数。
 * @return 元素数量
 */
List.prototype.size = function() {
	return this.list.length;
};

/**
 * 返回列表中指定的 start(包括)和 end(不包括)之间列表。
 * @param start 开始位置
 * @param end   结束位置
 * @return  新的列表
 */
List.prototype.subList = function(start, end) {	
	var list = new List();
	list.list = this.list.slice(start, end);
	return list;
};

/**
 *  如果列表不包含元素,则返回 true。
 * @return true or false
 */
List.prototype.isEmpty = function() {
	return this.list.length == 0;
};
 

原文链接:http://blog.csdn.net/wuanguo12/article/details/6785266

 

分享到:
评论

相关推荐

    js模拟list和map

    javascript 模拟 java中的 List,Map js文件为 js/utils.js IE6.0 测试通过 &lt;br&gt;List: add(var obj) //添加一个元素 remove(var index) //删除一个元素 get(var index) //获取一个元素 remove...

    js模拟C#中List的简单实例

    本篇文章主要是对js模拟C#中List的简单实例进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助

    JS模拟多线程

    var Thread = { runNum : 0, //当前正式运行的线程数 maxNum : 10, //最大同时执行的线程数 -1表示不限 commandList : new Array(), start : function(){ //window.status = this.runNum; if(this.maxNum !=...

    JS表的模拟方法

    本文实例讲述了JS表的模拟方法。分享给大家供大家参考。具体方法如下: &lt;!doctype html&gt; &lt;html&gt; &lt;head&gt; &lt;meta charset="utf-8"&gt; &lt;title&gt;列表&lt;/title&gt; [removed] function ...

    使用JavaScript实现Java的List功能(实例讲解)

    代码如下:/** * js模拟java中的List */ var list = new Array(); /** * 添加 * @param {Object} object */function add(object) { list[list.length] = object;} /** * 移除此列表中指定位置上的元素。 * @...

    用SSH+DWR+Oracle做的模拟Google搜索

    本实例是用SSH+DWR+Oracle10g做的模拟Goolge搜索的守完整实例 内容包括: 1、给每行绑定一个鼠标移上和移走事件 onmouseover onmouseout 2、焦点如果从文本框转移动显示的层中 设置了文本框失去焦点事件,目的是让...

    JS模拟实现Select效果代码

    这里模拟实现一个Select效果,其实这不是模拟,是自制Select,在JavaScript的配合下,运用CSS的UL/LI形成一个可下拉的列表,类似于下拉Select的效果,你可任意修改他们的颜色和内容之类的,用起来更方便了。...

    js模拟select下拉菜单控件的代码

    js模拟select&lt;/title&gt; &lt;/head&gt; &lt;style&gt; *{ margin:0; padding:0;} li{ list-style:none;} body{ font:12px “宋体”; color:#666;} .select_down{ margin:100px auto; positio

    JavaScript Drum Kit 指南(纯 JS 模拟敲鼓效果)

    event.target.classList.remove('playing'); // 移除高亮的样式 } function playSound(event) { const audio = document.querySelector(`audio[data-key=${event.keyCode}]`); // 根据触发按键的键码,获取对应...

    js模拟百度模糊搜索的实例

    废话不多说,直接上代码 &lt;!DOCTYPE html&gt; &lt;html lang=en&gt; &lt;head&gt; &lt;meta charset=UTF-8&gt;... list-style:none; } html,body{ color:#000; font-size:14px; font-family:'微软雅黑'

    struts2的方式返回json到jsp页面 List,Map,Object,对象各种操作都有....MyEclipse的,导入直接看效果。

    jsp通过Ajax无刷新获取Action返回的模拟数据,然后通过struts2转化成json数据返回页面....这里面Map,List,对象等等,一些常用的操作都有。主要的代码在Action和 json.js里面。适合新手入门

    用JS控制回车事件的代码

    我们操作习惯也确实是喜欢用回车建来直接提交数据。...于是乎考虑用直接在模板header文件中用js来实现全站对回车按钮的事件触发,下面是相应的代码: 代码如下: &lt;script language=”javascript” for=”docu

    jquery.simulate.drag-sortable.js:在JQuery UI Sortable小部件内模拟拖动事件(主要用于集成测试)

    特征您可以模拟在可排序列表中由指定数量的项目向上或向下拖动的项目支持拖动手柄支持占位符支持将列表限制为与选择器匹配的项目已知限制当前不适用于链接列表不支持水平排列的列表beforeStop事件不会触发用法包含...

    mock-aws-s3:用于模拟适用于Node.js的AWS开发工具包的库

    这是一个非常简单的界面,可模拟适用于Node.js的AWS开发工具包。 该实现尚不完整,但支持大多数基本功能。 可用的: createBucket deleteBucket listObjects listObjectsV2 deleteObjects deleteObject ...

    jQuery模拟select实现下拉菜单功能

    用jquery模拟一淘上面的搜索下拉的功能,利用css3做箭头的动画效果。 JS代码: /* * 模拟搜索下拉select * 默认调用方式:$(el).setSelect({ * optionList: [], //这里是下拉的选项,如['aa','bb'] * hidden...

    JavaScript模拟下拉菜单代码

    缺点:请大家指出,虚心接受!运行框代码看似繁多,实属无奈,请下载附件,以便更好观察或修改~! 下拉菜单 body{margin:20px auto;font-family:Arial, Helvetica, sans-serif;...list-style:none;

    JavaScript实现栈结构Stack过程详解

    JavaScript实现栈结构(Stack) 一、前言 1.1. 什么是数据结构? 数据结构就是在计算机中,存储和组织数据的方式。 例如:图书管理,怎样摆放图书才能既能放很多书,也方便取? 主要需要考虑两个问题: 操作一:新书...

    Javascript模拟scroll滚动效果脚本第1/2页

    .category_list{width:200px;border:solid 1px #666666;height:300px;position:relative;} #category_list{list-style:none;margin:0;padding:0;padding-left:20px;overflow:hidden;height:298px;} #category_scroll...

    wechat_virtual_list:微信小程序虚拟列表

    原生微信小程序 =&gt; wxml+wxss+js 项目运行 在微信开发工具中使用测试号运行便可 业务介绍 目录结构 ├── components // 组件文件文件夹 │ ├── empty // 空或没有更多组件 │ └── faqs_item // 列表项组件 ...

Global site tag (gtag.js) - Google Analytics