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可突破windows弹退效果代码
Aug 09 Javascript
JS延迟加载加快页面打开速度示例代码
Dec 30 Javascript
javascript弹出拖动窗口
Aug 11 Javascript
在javascript中随机数 math random如何生成指定范围数值的随机数
Oct 21 Javascript
js实现继承的5种方式
Dec 01 Javascript
JQuery遍历元素的父辈和祖先的方法
Sep 18 Javascript
JS HTML图片显示Canvas 压缩功能
Jul 21 Javascript
vue.js打包之后可能会遇到的坑!
Jun 03 Javascript
在iFrame子页面里实现模态框的方法
Aug 17 Javascript
p5.js临摹动态图形的方法
Oct 23 Javascript
node.js中fs文件系统模块的使用方法实例详解
Feb 13 Javascript
浅谈Vue的computed计算属性
Mar 21 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
一个多文件上传的例子(原创)
2006/10/09 PHP
phpnow php探针环境检测代码
2014/11/04 PHP
php脚本运行时的超时机制详解
2016/02/17 PHP
js面向对象设计用{}好还是function(){}好(构造函数)
2011/10/23 Javascript
IFrame跨域高度自适应实现代码
2012/08/16 Javascript
jquery js 获取时间差、时间格式具体代码
2013/06/05 Javascript
当前流行的JavaScript代码风格指南
2014/09/10 Javascript
jQuery表单验证功能实例
2015/08/28 Javascript
jQuery实现三级菜单的代码
2016/05/09 Javascript
详解js中call与apply关键字的作用
2016/11/21 Javascript
JavaScript的兼容性与调试技巧
2016/11/22 Javascript
jQuery validate 验证radio实例
2017/03/01 Javascript
js获取json中key所对应的value值的简单方法
2020/06/17 Javascript
layui选项卡效果实现代码
2017/05/19 Javascript
微信小程序App生命周期详解
2018/01/31 Javascript
微信小程序滑动选择器的实现代码
2018/08/10 Javascript
Angular angular-file-upload文件上传的示例代码
2018/08/23 Javascript
js实现随机点名器精简版
2020/06/29 Javascript
Vue中computed和watch有哪些区别
2020/12/19 Vue.js
[44:15]DOTA2上海特级锦标赛主赛事日 - 5 败者组决赛Liquid VS EG第二局
2016/03/06 DOTA
Python设计模式之代理模式实例
2014/04/26 Python
Django admin实现图书管理系统菜鸟级教程完整实例
2017/12/12 Python
在PyCharm下打包*.py程序成.exe的方法
2018/11/29 Python
python通过paramiko复制远程文件及文件目录到本地
2019/04/30 Python
python GUI库图形界面开发之PyQt5动态(可拖动控件大小)布局控件QSplitter详细使用方法与实例
2020/03/06 Python
python爬虫实现获取下一页代码
2020/03/13 Python
css3 给页面加个半圆形导航条主要利用旋转和倾斜样式
2014/02/10 HTML / CSS
html5 canvas合成海报所遇问题及解决方案总结
2017/08/03 HTML / CSS
乐高西班牙官方商店:LEGO Shop ES
2019/12/01 全球购物
Linux上比较文件的命令都有哪些
2013/09/28 面试题
初婚未育未抱养证明
2014/01/12 职场文书
幼儿园中班开学寄语
2014/04/03 职场文书
小班幼儿评语大全
2014/04/30 职场文书
个人课题方案
2014/05/08 职场文书
教师聘用意向书
2015/05/11 职场文书
vue实现Toast组件轻提示
2022/04/10 Vue.js