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 相关文章推荐
仿淘宝TAB切换搜索框搜索切换的相关内容
Sep 21 Javascript
node.js中的events.emitter.listeners方法使用说明
Dec 10 Javascript
jQuery实现炫酷的鼠标轨迹特效
Feb 01 Javascript
JQuery实现动态添加删除评论的方法
May 18 Javascript
jquery遍历json对象集合详解
May 18 Javascript
jQuery操作动态生成的内容的方法
May 28 Javascript
关于Iframe父页面与子页面之间的相互调用
Nov 22 Javascript
微信小程序手势操作之单触摸点与多触摸点
Mar 10 Javascript
Js中async/await的执行顺序详解
Sep 22 Javascript
JS数组实现分类统计实例代码
Sep 30 Javascript
JS使用队列对数组排列,基数排序算法示例
Mar 02 Javascript
vue中的双向数据绑定原理与常见操作技巧详解
Mar 16 Javascript
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中\r \r\n \t的区别示例介绍
2014/02/08 PHP
PHP中使用虚代理实现延迟加载技术
2014/11/05 PHP
yii通过小物件生成view的方法
2016/10/08 PHP
浅谈ThinkPHP5.0版本和ThinkPHP3.2版本的区别
2017/06/17 PHP
Yii支持多域名cors原理的实现
2018/12/05 PHP
prototype.js的Ajax对象
2006/09/23 Javascript
JQuery的一些小应用收集
2010/03/27 Javascript
模拟select的代码
2011/10/19 Javascript
JS Loading功能的简单实现
2013/11/29 Javascript
node.js中的url.format方法使用说明
2014/12/10 Javascript
纯JavaScript实现的兼容各浏览器的添加和移除事件封装
2015/03/28 Javascript
JavaScript实现为指定对象添加多个事件处理程序的方法
2015/04/17 Javascript
js动态生成form 并用ajax方式提交的实现方法
2016/09/09 Javascript
js实现旋转木马效果
2017/03/17 Javascript
Vue自定义事件(详解)
2017/08/19 Javascript
Express下采用bcryptjs进行密码加密的方法
2018/02/07 Javascript
Vue中Quill富文本编辑器的使用教程
2018/09/21 Javascript
详解Vue.js iview实现树形权限表(可扩展表)
2018/09/30 Javascript
vue中上传视频或图片或图片和文字一起到后端的解决方法
2019/12/01 Javascript
vue离开当前页面触发的函数代码
2020/09/01 Javascript
vue项目开启Gzip压缩和性能优化操作
2020/10/26 Javascript
[10:24]郎朗助力完美“圣”典,天籁交织奏响序曲
2016/12/18 DOTA
python判断文件夹内是否存在指定后缀文件的实例
2019/06/10 Python
python 列表输出重复值以及对应的角标方法
2019/06/11 Python
Pytorch 数据加载与数据预处理方式
2019/12/31 Python
意大利制造的男鞋和女鞋:SCAROSSO
2018/03/07 全球购物
荷兰电脑专场:Paradigit
2018/05/05 全球购物
理肤泉加拿大官网:La Roche-Posay加拿大
2018/07/06 全球购物
老龙头导游词
2015/02/11 职场文书
2015感人爱情寄语
2015/02/26 职场文书
论文致谢词范文
2015/05/14 职场文书
2015年敬老院工作总结
2015/05/18 职场文书
小学安全教育主题班会
2015/08/12 职场文书
python实现简单区块链结构
2021/04/25 Python
Python必备技巧之字符数据操作详解
2022/03/23 Python
Python软件包安装的三种常见方法
2022/07/07 Python