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 相关文章推荐
JavaScript使用技巧精萃[代码非常实用]
Nov 21 Javascript
JavaScript性能优化 创建文档碎片(document.createDocumentFragment)
Jul 13 Javascript
js 获取和设置css3 属性值的实现方法
May 06 Javascript
Extjs3.0 checkboxGroup 动态添加item实现思路
Aug 14 Javascript
导航跟随滚动条置顶移动示例代码
Sep 11 Javascript
Node.js静态文件服务器改进版
Jan 10 Javascript
详解vue.js全局组件和局部组件
Apr 10 Javascript
Vue.js在使用中的一些注意知识点
Apr 29 Javascript
js读取本地文件的实例
Dec 22 Javascript
javascript自定义右键菜单插件
Dec 16 Javascript
React 高阶组件HOC用法归纳
Jun 13 Javascript
JavaScript数组reduce()方法的语法与实例解析
Jul 07 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 读取大文件的X行到Y行内容的实现代码
2013/06/24 PHP
php分页原理 分页代码 分页类制作教程
2016/09/23 PHP
老生常谈PHP数组函数array_merge(必看篇)
2017/05/25 PHP
php+ajax实现无刷新文件上传功能(ajaxuploadfile)
2018/02/11 PHP
基于php伪静态的实现方法解析
2020/07/31 PHP
用javascript实现的支持lrc歌词的播放器
2007/05/17 Javascript
js中if语句的几种优化代码写法
2011/03/12 Javascript
jQuery AjaxQueue改进步骤
2011/10/06 Javascript
select标签模拟/美化方法采用JS外挂式插件
2013/04/01 Javascript
js实现图片轮换效果代码
2013/04/16 Javascript
Jquery Ajax解析XML数据(同步及异步调用)简单实例
2014/02/12 Javascript
javascript数据类型示例分享
2015/01/19 Javascript
javascript html5摇一摇功能的实现
2016/04/19 Javascript
js判断登陆用户名及密码是否为空的简单实例
2016/05/16 Javascript
微信小程序 两种滑动方式(横向滑动,竖向滑动)详细及实例代码
2017/01/13 Javascript
JavaScript调用模式与this关键字绑定的关系
2018/04/21 Javascript
vue-cli3.0+element-ui上传组件el-upload的使用
2018/12/03 Javascript
vue+SSM实现验证码功能
2018/12/07 Javascript
Vue项目中ESlint规范示例代码
2019/07/04 Javascript
深入浅析vue中cross-env的使用
2019/09/12 Javascript
vue搜索页开发实例代码详解(热门搜索,历史搜索,淘宝接口演示)
2020/04/11 Javascript
python进阶教程之文本文件的读取和写入
2014/08/29 Python
Python学习教程之常用的内置函数大全
2017/07/14 Python
python difflib模块示例讲解
2017/09/13 Python
恢复百度云盘本地误删的文件脚本(简单方法)
2017/10/21 Python
python将文本中的空格替换为换行的方法
2018/03/19 Python
python中的变量如何开辟内存
2018/06/26 Python
Django REST Framework序列化外键获取外键的值方法
2019/07/26 Python
python异步编程 使用yield from过程解析
2019/09/25 Python
基于python计算滚动方差(标准差)talib和pd.rolling函数差异详解
2020/06/08 Python
Python3读取和写入excel表格数据的示例代码
2020/06/09 Python
学习Python需要哪些工具
2020/09/04 Python
体育专业自荐书
2014/05/29 职场文书
团干部培训方案
2014/06/03 职场文书
关于成立领导小组的通知
2015/04/23 职场文书
如何获取numpy array前N个最大值
2021/05/14 Python