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 相关文章推荐
js 表单验证方法(实用)
Apr 28 Javascript
JavaScript 嵌套函数指向this对象错误的解决方法
Mar 15 Javascript
JavaScript实现的一个日期格式化函数分享
Dec 06 Javascript
JavaScript在浏览器标题栏上显示当前日期和时间的方法
Mar 19 Javascript
微信小程序实战之自定义toast(6)
Apr 18 Javascript
浅谈angular.copy() 深拷贝
Sep 14 Javascript
微信小程序媒体组件详解(视频,音乐,图片)
Sep 19 Javascript
谈谈IntersectionObserver懒加载的具体使用
Oct 15 Javascript
vue+element树组件 实现树懒加载的过程详解
Oct 21 Javascript
jQuery实现可以计算进制转换的计算器
Oct 19 jQuery
可拖拽组件slider.js使用方法详解
Dec 04 Javascript
VUE实现吸底按钮
Mar 04 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
smarty中js的调用方法示例
2014/10/27 PHP
PHP实现简单爬虫的方法
2015/07/29 PHP
thinkphp5.0整合phpsocketio完整攻略(绕坑)
2018/10/12 PHP
php输出文字乱码的解决方法
2019/10/04 PHP
如何用ajax来创建一个XMLHttpRequest对象
2012/12/10 Javascript
javascript修改IMG标签的src问题
2014/03/28 Javascript
JavaScript中的style.cssText使用教程
2014/11/06 Javascript
超炫的jquery仿flash导航栏特效
2014/11/11 Javascript
Linux下使用jq友好的打印JSON技巧分享
2014/11/18 Javascript
JavaScript中模拟实现jsonp
2015/06/19 Javascript
Backbone.js框架中Model与Collection的使用实例
2016/05/07 Javascript
Node.js利用debug模块打印出调试日志的方法
2017/04/25 Javascript
浅谈Vue内置component组件的应用场景
2018/03/27 Javascript
javascript标准库(js的标准内置对象)总结
2018/05/26 Javascript
javascript中的with语句学习笔记及用法
2020/02/17 Javascript
JavaScript实现答题评分功能页面
2020/06/24 Javascript
js实现三角形粒子运动
2020/09/22 Javascript
[02:05]DOTA2完美大师赛趣味视频之看我表演
2017/11/18 DOTA
python修改注册表终止360进程实例
2014/10/13 Python
Python使用Beautiful Soup包编写爬虫时的一些关键点
2016/01/20 Python
常用python编程模板汇总
2016/02/12 Python
理解Python中的With语句
2016/03/18 Python
使用apidoc管理RESTful风格Flask项目接口文档方法
2018/02/07 Python
Python中出现IndentationError:unindent does not match any outer indentation level错误的解决方法
2020/04/18 Python
在Pandas中处理NaN值的方法
2019/06/25 Python
Pycharm 2020.1 版配置优化的详细教程
2020/08/07 Python
关于python3.9安装wordcloud出错的问题及解决办法
2020/11/02 Python
Room Mate Hotels美国:西班牙酒店品牌
2018/04/10 全球购物
北美Newegg打造的全球尖货海购平台:tt海购
2018/09/28 全球购物
Prototype是怎么扩展DOM的
2014/10/01 面试题
jQuery treeview树形结构应用
2021/03/24 jQuery
2015年党员公开承诺书范文
2015/01/22 职场文书
2015年感恩父亲节活动策划方案
2015/05/05 职场文书
2015中学教师个人工作总结
2015/07/22 职场文书
毕业班工作总结
2015/08/10 职场文书
python xlwt模块的使用解析
2021/04/13 Python