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 相关文章推荐
Add a Formatted Table to a Word Document
Jun 15 Javascript
JavaScript 学习技巧
Feb 17 Javascript
jQuery中的基本选择器用法学习教程
Apr 14 Javascript
给easyui的datebox控件添加清空按钮的实现方法
Nov 09 Javascript
图片懒加载插件实例分享(含解析)
Jan 09 Javascript
vue.js开发环境安装教程
Mar 17 Javascript
JavaScript使用原型和原型链实现对象继承的方法详解
Apr 05 Javascript
深入理解Node.js中通用基础设计模式
Sep 19 Javascript
Web开发使用Angular实现用户密码强度判别的方法
Sep 27 Javascript
深入理解Node module模块
Mar 26 Javascript
bootstrap tooltips在 angularJS中的使用方法
Apr 10 Javascript
详解vuex数据传输的两种方式及this.$store undefined的解决办法
Aug 26 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
无限级别菜单的实现
2006/10/09 PHP
COM in PHP (winows only)
2006/10/09 PHP
匹配csdn用户数据库与官方用户的重合度并将重叠部分的用户筛选出来
2011/12/25 PHP
PHP中header和session_start前不能有输出原因分析
2013/01/11 PHP
php利用单例模式实现日志处理类库
2014/02/10 PHP
php解决和避免form表单重复提交的几种方法
2016/08/31 PHP
Javascript与flash交互通信基础教程
2008/08/07 Javascript
Javascript 表单之间的数据传递代码
2008/12/04 Javascript
学习ExtJS TextField常用方法
2009/10/07 Javascript
Javascript学习笔记 delete运算符
2011/09/13 Javascript
用按钮控制iframe显示的网页实现方法
2013/02/04 Javascript
jQuery实现瀑布流布局
2014/12/12 Javascript
JQuery右键菜单插件ContextMenu使用指南
2014/12/19 Javascript
js 转json格式的字符串为对象或数组(前后台)的方法
2016/11/02 Javascript
深入浅析angular和vue还有jquery的区别
2018/08/13 jQuery
vue 地图可视化 maptalks 篇实例代码详解
2019/05/21 Javascript
JS实现可视化音频效果的实例代码
2020/01/16 Javascript
python遍历目录的方法小结
2016/04/28 Python
python 打印出所有的对象/模块的属性(实例代码)
2016/09/11 Python
windows下python安装小白入门教程
2018/09/18 Python
使用PM2+nginx部署python项目的方法示例
2018/11/07 Python
Django中自定义模型管理器(Manager)及方法
2019/09/23 Python
Python搭建代理IP池实现检测IP的方法
2019/10/27 Python
Keras中 ImageDataGenerator函数的参数用法
2020/07/03 Python
使用CSS3代码绘制可爱的Hello Kitty猫
2016/08/03 HTML / CSS
CSS3的column-fill属性对齐列内容高度的用法详解
2016/07/01 HTML / CSS
使用HTML5捕捉音频与视频信息概述及实例
2018/08/22 HTML / CSS
HTML5添加禁止缩放功能
2017/11/03 HTML / CSS
18-35岁旅游团的全球领导者:Contiki
2017/02/08 全球购物
澳大利亚领先的在线葡萄酒零售商:Get Wines Direct
2018/03/27 全球购物
技术总监管理职责范本
2014/03/06 职场文书
保护环境倡议书500字
2014/05/19 职场文书
转学证明范本
2015/06/19 职场文书
2015年数学教研工作总结
2015/07/22 职场文书
演讲稿:​快乐,从不抱怨开始!
2019/04/02 职场文书
golang 如何用反射reflect操作结构体
2021/04/28 Golang