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 相关文章推荐
使用CSS3的scale实现网页整体缩放
Mar 18 Javascript
分享2个jQuery插件--jquery.fileupload与artdialog
Dec 26 Javascript
JS之获取样式的简单实现方法(推荐)
Sep 13 Javascript
ES6学习笔记之正则表达式和字符串正则方法分析
Apr 25 Javascript
基于easyui checkbox 的一些操作处理方法
Jul 10 Javascript
JavaScript实现旋转轮播图
Aug 18 Javascript
Vue组件库发布到npm详解
Feb 17 Javascript
使用JS判断页面是首次被加载还是刷新
May 26 Javascript
详解微信小程序支付流程与梳理
Jul 16 Javascript
Vue 使用Props属性实现父子组件的动态传值详解
Nov 13 Javascript
Vuex的各个模块封装的实现
Jun 05 Javascript
vue-列表下详情的展开与折叠案例
Jul 28 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
晶体管单管来复再生式收音机
2021/03/02 无线电
php download.php实现代码 跳转到下载文件(response.redirect)
2009/08/26 PHP
PHP实现把数字ID转字母ID
2013/08/12 PHP
PHP 获取ip地址代码汇总
2015/07/05 PHP
PHP的邮件群发系统phplist配置方法详细总结
2016/03/30 PHP
PHP MSSQL 分页实例
2016/04/13 PHP
PHP实现的pdo连接数据库并插入数据功能简单示例
2019/03/30 PHP
Thinkphp 框架扩展之应用模式实现方法分析
2020/04/27 PHP
让您的菜单不离网站
2006/10/03 Javascript
用js实现下载远程文件并保存在本地的脚本
2008/05/06 Javascript
提升你网站水平的jQuery插件集合推荐
2011/04/19 Javascript
jquery 触发a链接点击事件解决方案
2013/05/02 Javascript
JS实现根据当前文字选择返回被选中的文字
2014/05/21 Javascript
jquery+json实现分页效果
2016/03/07 Javascript
javascript触发模拟鼠标点击事件
2019/06/26 Javascript
vue 在methods中调用mounted的实现操作
2020/08/07 Javascript
使用Python压缩和解压缩zip文件的教程
2015/05/06 Python
在Python的Django框架的视图中使用Session的方法
2015/07/23 Python
实例讲解Python的函数闭包使用中应注意的问题
2016/06/20 Python
tensorflow实现对图片的读取的示例代码
2018/02/12 Python
Django 多语言教程的实现(i18n)
2018/07/07 Python
Django管理员账号和密码忘记的完美解决方法
2018/12/06 Python
解决python3 pika之连接断开的问题
2018/12/18 Python
python实现批量修改服务器密码的方法
2019/08/13 Python
Python3读写Excel文件(使用xlrd,xlsxwriter,openpyxl3种方式读写实例与优劣)
2020/02/13 Python
使用Python获取当前工作目录和执行命令的位置
2020/03/09 Python
使用python将微信image下.dat文件解密为.png的方法
2020/11/30 Python
适合各种场合的美食礼品:Harry & David
2016/08/03 全球购物
C语言中一个结构不能包含指向自己的指针吗
2012/05/25 面试题
服务行业个人求职的自我评价
2013/12/12 职场文书
上学迟到的检讨书
2014/01/11 职场文书
新春寄语大全
2014/04/09 职场文书
运动会闭幕词
2015/01/28 职场文书
导游词之襄阳古城
2019/09/27 职场文书
SQL Server 数据库实验课第五周——常用查询条件
2021/04/05 SQL Server
Vue.js中v-bind指令的用法介绍
2022/03/13 Vue.js