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 相关文章推荐
无缝滚动js代码通俗易懂(自写)
Jun 19 Javascript
JS实现简单的键盘打字的效果
Apr 24 Javascript
JS实现选项卡实例详解
Nov 17 Javascript
JavaScript实现显示函数调用堆栈的方法
Apr 21 Javascript
详解vue-cli中的ESlint配置文件eslintrc.js
Sep 25 Javascript
深入浅析Vue 中 ref 的使用
Apr 29 Javascript
jQuery实现滑动星星评分效果(每日分享)
Nov 13 jQuery
JavaScript中的this/call/apply/bind的使用及区别
Mar 06 Javascript
JS实现手写 forEach算法示例
Apr 29 Javascript
利用PHP实现递归删除链表元素的方法示例
Oct 23 Javascript
vue实现前端列表多条件筛选
Oct 26 Javascript
JavaScript 与 TypeScript之间的联系
Nov 27 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实现html标签闭合检测与修复方法
2015/07/09 PHP
PHP图片加水印实现方法
2016/05/06 PHP
Yii CGridView用法实例详解
2016/07/12 PHP
php根据用户名和手机号查询是否存在手机号码
2017/02/16 PHP
javascript入门·对象属性方法大总结
2007/10/01 Javascript
js调用flash的效果代码
2008/04/26 Javascript
JavaScript中的匀速运动和变速(缓冲)运动详细介绍
2012/11/11 Javascript
jquery中prop()方法和attr()方法的区别浅析
2013/09/06 Javascript
javascript解析json数据的3种方式
2014/05/08 Javascript
js实现模拟计算器退格键删除文字效果的方法
2015/05/07 Javascript
详解JavaScript中的forEach()方法的使用
2015/06/08 Javascript
JavaScript使用DeviceOne开发实战(四)仿优酷视频应用
2015/12/02 Javascript
简单了解JavaScript操作XPath的一些基本方法
2016/06/03 Javascript
总结AngularJS开发者最常犯的十个错误
2016/08/31 Javascript
jQuery实现可移动选项的左右下拉列表示例
2016/12/26 Javascript
详解AngularJS通过ocLazyLoad实现动态(懒)加载模块和依赖
2017/03/01 Javascript
angularJS模态框$modal实例代码
2017/05/27 Javascript
Node 升级到最新稳定版的方法分享
2018/05/17 Javascript
Vue实现底部侧边工具栏的实例代码
2018/09/03 Javascript
JS数组求和的常用方法实例小结
2019/01/07 Javascript
js blob类型url的视频下载问题的解决
2019/11/29 Javascript
微信小程序实现点击按钮后修改颜色
2019/12/05 Javascript
[43:26]完美世界DOTA2联赛PWL S2 Forest vs Rebirth 第二场 11.20
2020/11/23 DOTA
Python 遍历子文件和所有子文件夹的代码实例
2016/12/21 Python
Python使用requests及BeautifulSoup构建爬虫实例代码
2018/01/24 Python
Python Django 命名空间模式的实现
2019/08/09 Python
python 插入日期数据到Oracle实例
2020/03/02 Python
Django contrib auth authenticate函数源码解析
2020/11/12 Python
详解matplotlib绘图样式(style)初探
2021/02/03 Python
机械专业个人求职自荐信格式
2013/09/21 职场文书
中医专业应届生求职信
2013/11/17 职场文书
大学旷课检讨书
2014/01/28 职场文书
家长对老师的感言
2014/03/11 职场文书
党员干部三严三实心得体会
2014/10/13 职场文书
Python中else的三种使用场景
2021/06/16 Python
三种方式清除vue路由跳转router-link的历史记录
2022/04/10 Vue.js