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 相关文章推荐
JQuery 遮罩层实现(mask)实现代码
Jan 09 Javascript
javascript小数四舍五入多种方法实现
Dec 23 Javascript
写出高效jquery代码的19条指南
Mar 19 Javascript
JavaScript中利用for循环遍历数组
Jan 15 Javascript
Vue.js实战之利用vue-router实现跳转页面
Apr 01 Javascript
Vue.js使用$.ajax和vue-resource实现OAuth的注册、登录、注销和API调用
May 10 Javascript
Vue 中批量下载文件并打包的示例代码
Nov 20 Javascript
JavaScript的setter与getter方法
Nov 29 Javascript
详解vue的diff算法原理
May 20 Javascript
微信小程序CSS3动画下拉菜单效果
Nov 04 Javascript
小程序按钮避免多次调用接口和点击方案实现(不用showLoading)
Apr 15 Javascript
IDEA配置jQuery, $符号不再显示黄色波浪线的问题
Oct 09 jQuery
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
德劲1103的维修打理经验
2021/03/02 无线电
从网上搜到的phpwind 0day的代码
2006/12/07 PHP
php cookie 登录验证示例代码
2009/03/16 PHP
php 分库分表hash算法
2009/11/12 PHP
php microtime获取浮点的时间戳
2010/02/21 PHP
php中二维数组排序问题方法详解
2015/08/28 PHP
培养自己的php编码规范
2015/09/28 PHP
PHP经典面试题之设计模式(经常遇到)
2015/10/15 PHP
PHP实现微信JS-SDK接口选择相册及拍照并上传的方法
2016/12/05 PHP
PHP中rename()函数的妙用讲解
2019/02/28 PHP
基于PHP实现微信小程序客服消息功能
2019/08/12 PHP
详解no input file specified 三种解决方法
2019/11/29 PHP
javascript数字格式化通用类 accounting.js使用
2012/08/24 Javascript
ANT 压缩(去掉空格/注释)JS文件可提高js运行速度
2013/04/15 Javascript
js/jquery解析json和数组格式的方法详解
2014/01/09 Javascript
微信开发 使用picker封装省市区三级联动模板
2016/10/28 Javascript
原生JS实现简单放大镜效果
2017/02/08 Javascript
超全面的javascript中变量命名规则
2017/02/09 Javascript
让Vue也可以使用Redux的方法
2018/05/23 Javascript
了解JavaScript中let语句
2019/05/30 Javascript
elementUI vue this.$confirm 和el-dialog 弹出框 移动 示例demo
2019/07/03 Javascript
[02:11]2016国际邀请赛中国区预选赛最美TA采访现场玩家
2016/06/28 DOTA
[01:12:08]LGD vs OG 2019国际邀请赛淘汰赛 胜者组 BO3 第一场 8.24
2019/09/10 DOTA
Python基础之函数用法实例详解
2014/09/10 Python
Pandas缺失值2种处理方式代码实例
2020/06/13 Python
教你如何用python操作摄像头以及对视频流的处理
2020/10/12 Python
H&M美国官网:欧洲最大的服饰零售商
2016/09/07 全球购物
马来西亚排名第一的宠物用品店:Pets Wonderland
2020/04/16 全球购物
大客户销售经理职责
2013/12/04 职场文书
酒店端午节活动方案
2014/08/26 职场文书
2015个人简历自我评价语
2015/03/11 职场文书
2016教师学习教育法心得体会
2016/01/19 职场文书
vue2实现provide inject传递响应式
2021/05/21 Vue.js
浅析Python中的随机采样和概率分布
2021/12/06 Python
python多线程方法详解
2022/01/18 Python
详解JavaScript的计时器和按钮效果设置
2022/02/18 Javascript