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 相关文章推荐
firefox中JS读取XML文件
Dec 21 Javascript
jquery.ui.draggable中文文档(原文翻译)
Nov 15 Javascript
js设置cookie过期当前时间减去一秒相当于立即过期
Sep 04 Javascript
jQuery中判断对象是否存在的方法汇总
Feb 24 Javascript
使用js获取地址栏参数的方法推荐(超级简单)
Jun 14 Javascript
js与applet相互调用的方法
Jun 22 Javascript
原生Javascript插件开发实践
Jan 09 Javascript
Angular 项目实现国际化的方法
Jan 08 Javascript
vue-cli axios请求方式及跨域处理问题
Mar 28 Javascript
详解React中共享组件逻辑的三种方式
Feb 02 Javascript
JavaScript实现页面动态验证码的实现示例
Mar 23 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 array_map array_multisort 高效处理多维数组排序
2009/06/11 PHP
php在程序中将网页生成word文档并提供下载的代码
2012/10/09 PHP
PHP中数组定义的几种方法
2013/09/01 PHP
php获取本周星期一具体日期的方法
2015/04/20 PHP
IIS 7.5 asp Session超时时间设置方法
2017/04/17 PHP
PHP简单实现二维数组的矩阵转置操作示例
2017/11/24 PHP
javascript XMLHttpRequest对象全面剖析
2010/04/24 Javascript
jquery-syntax动态语法着色示例代码
2014/05/14 Javascript
基于JQuery制作可编辑的表格特效
2014/12/23 Javascript
javascript html5 canvas实现可拖动省份的中国地图
2016/03/11 Javascript
jQuery实现对象转为url参数的方法
2017/01/11 Javascript
JavaScript 程序错误Cannot use 'in' operator to search的解决方法
2017/07/10 Javascript
JavaScript+CSS相册特效实例代码
2017/09/07 Javascript
使用jQuery 操作table 完成单元格合并的实例
2017/12/27 jQuery
nodejs用gulp管理前端文件方法
2018/06/24 NodeJs
使用elementUI实现将图片上传到本地的示例
2018/09/04 Javascript
每周一练 之 数据结构与算法(Stack)
2019/04/16 Javascript
微信小程序判断页面是否从其他页面返回的实例代码
2019/07/03 Javascript
vue+Element-ui实现登录注册表单
2020/11/17 Javascript
vue3.0实现插件封装
2020/12/14 Vue.js
[01:01:52]DOTA2-DPC中国联赛定级赛 SAG vs iG BO3第二场 1月9日
2021/03/11 DOTA
Python解惑之整数比较详解
2017/04/24 Python
Python中几种导入模块的方式总结
2017/04/27 Python
详解python使用pip安装第三方库(工具包)速度慢、超时、失败的解决方案
2018/12/02 Python
使用TensorFlow实现二分类的方法示例
2019/02/05 Python
Python3 pywin32模块安装的详细步骤
2020/05/26 Python
Python 程序员必须掌握的日志记录
2020/08/17 Python
Python3获取cookie常用三种方案
2020/10/05 Python
BeautifulSoup获取指定class样式的div的实现
2020/12/07 Python
html5 canvas实现给图片添加平铺水印
2019/08/20 HTML / CSS
美国在线家装零售商:Build.com
2016/09/02 全球购物
什么是Linux虚拟文件系统VFS
2015/08/25 面试题
2015新年联欢晚会开场白
2014/12/14 职场文书
教你如何用python开发一款数字推盘小游戏
2021/04/14 Python
pytorch MSELoss计算平均的实现方法
2021/05/12 Python
Python&Matlab实现灰狼优化算法的示例代码
2022/03/21 Python