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


Posted in Javascript onMarch 06, 2014
/*
 * List 大小可变数组
 * 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;
};
Javascript 相关文章推荐
为数据添加append,remove功能
Oct 03 Javascript
使用Modello编写JavaScript类
Dec 22 Javascript
jquery offset函数应用实例
Nov 14 Javascript
js中apply方法的使用详细解析
Nov 04 Javascript
javascript初学者常用技巧
Sep 02 Javascript
Node.js和MongoDB实现简单日志分析系统
Apr 25 Javascript
JS+CSS实现的经典圆角下拉菜单效果代码
Oct 21 Javascript
JavaScript 字符串数字左补位,右补位,取固定长度,截位扩展函数代码
Mar 25 Javascript
Vue框架中正确引入JS库的方法介绍
Jul 30 Javascript
微信小程序表单验证功能完整实例
Dec 01 Javascript
解决vue中修改了数据但视图无法更新的情况
Aug 27 Javascript
浅谈Vue开发人员的7个最好的VSCode扩展
Jan 20 Vue.js
js模拟hashtable的简单实例
Mar 06 #Javascript
JavaScript简单实现鼠标拖动选择功能
Mar 06 #Javascript
用JS在浏览器中创建下载文件
Mar 05 #Javascript
使用iframe window的scroll方法控制iframe页面滚动
Mar 05 #Javascript
js写的方法实现上传图片之后查看大图
Mar 05 #Javascript
js数值和和字符串进行转换时可以对不同进制进行操作
Mar 05 #Javascript
JSON中双引号的轮回使用过程中一定要小心
Mar 05 #Javascript
You might like
php空间不支持socket但支持curl时recaptcha的用法
2011/11/07 PHP
PHP之APC缓存详细介绍 apc模块安装
2014/01/13 PHP
PHP快速排序quicksort实例详解
2016/09/28 PHP
YII2框架中使用yii.js实现的post请求
2017/04/09 PHP
详解php框架Yaf路由重写
2017/06/20 PHP
PHP+jQuery实现即点即改功能示例
2019/02/21 PHP
laradock环境docker-compose操作详解
2019/07/29 PHP
laravel csrf排除路由,禁止,关闭指定路由的例子
2019/10/21 PHP
js实现可拖动DIV的方法
2013/12/17 Javascript
JS判断表单输入是否为空(示例代码)
2013/12/23 Javascript
Javascript仿PHP $_GET获取URL中的参数
2014/05/12 Javascript
JQuery设置获取下拉菜单某个选项的值(比较全)
2014/08/05 Javascript
IE及IE6浏览器中判断JS文件加载成功失败的方法
2015/02/18 Javascript
jQuery实现默认是闭合的FAQ展开效果菜单
2015/09/14 Javascript
原生js实现移动端触摸轮播的示例代码
2017/12/22 Javascript
Three.js中矩阵和向量的使用教程
2019/03/19 Javascript
Python中捕捉详细异常信息的代码示例
2014/09/18 Python
python通过装饰器检查函数参数数据类型的方法
2015/03/13 Python
Python中的filter()函数的用法
2015/04/27 Python
Python实现批量压缩图片
2018/01/25 Python
python利用requests库进行接口测试的方法详解
2018/07/06 Python
Python3基础教程之递归函数简单示例
2019/06/07 Python
python  logging日志打印过程解析
2019/10/22 Python
django model的update时auto_now不被更新的原因及解决方式
2020/04/01 Python
numba提升python运行速度的实例方法
2021/01/25 Python
css3动画鼠标放上图片逐渐变大鼠标离开图片逐渐缩小效果
2021/01/27 HTML / CSS
TripAdvisor斯洛伐克:阅读评论、比较价格和酒店预订
2018/04/25 全球购物
怎样从/向数据文件读/写结构
2014/11/23 面试题
介绍一下MYSQL常用的优化技巧
2012/10/25 面试题
公司保密承诺书
2014/03/27 职场文书
学校百日安全生产活动总结
2014/07/05 职场文书
2015年党员公开承诺事项
2015/04/27 职场文书
活动宣传稿范文
2015/07/23 职场文书
Nginx反向代理配置的全过程记录
2021/06/22 Servers
vue实现列表拖拽排序的示例代码
2022/04/08 Vue.js
避坑之 JavaScript 中的toFixed()和正则表达式
2022/04/19 Javascript