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 遍历验证所有文本框的值
Aug 27 Javascript
BootStrap入门教程(一)之可视化布局
Sep 19 Javascript
DWR3 访问WEB元素的两种方法实例详解
Jan 03 Javascript
Vue数据驱动模拟实现3
Jan 11 Javascript
详解Vue 动态添加模板的几种方法
Apr 25 Javascript
详解webpack进阶之loader篇
Aug 23 Javascript
jQueryUI Sortable 应用Demo(分享)
Sep 07 jQuery
Vue+iview+webpack ie浏览器兼容简单处理
Sep 20 Javascript
webpack3升级到webpack4遇到问题总结
Sep 30 Javascript
axios 实现post请求时把对象obj数据转为formdata
Oct 31 Javascript
微信小程序实现聊天室
Aug 21 Javascript
详解CocosCreator项目结构机制
Apr 14 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 删除记录实现代码
2009/03/12 PHP
php select,radio和checkbox默认选择的实现方法
2010/05/15 PHP
献给php初学者(入门学习经验谈)
2010/10/12 PHP
php数组冒泡排序算法实例
2016/05/06 PHP
PHP实现将多个文件中的内容合并为新文件的方法示例
2017/06/10 PHP
js 返回时间戳所对应的具体时间
2010/07/20 Javascript
利用javascript实现web页面中指定区域打印
2013/10/30 Javascript
jQuery中attr()方法用法实例
2015/01/05 Javascript
JS数组array元素的添加和删除方法代码实例
2015/06/01 Javascript
JavaScript中的bold()方法使用详解
2015/06/08 Javascript
Jquery 全选反选实例代码
2015/11/19 Javascript
javascript中call apply 与 bind方法详解
2016/03/10 Javascript
JavaScript 中 avalon绑定属性总结
2016/10/19 Javascript
详细讲解vue2+vuex+axios
2017/05/27 Javascript
浅谈关于.vue文件中style的scoped属性
2017/08/19 Javascript
AjaxUpLoad.js实现文件上传
2018/03/05 Javascript
JS使用Prim算法和Kruskal算法实现最小生成树
2019/01/17 Javascript
简单了解vue中的v-if和v-show的区别
2019/10/08 Javascript
js实现图片无缝循环轮播
2019/10/28 Javascript
Vue SPA 初次进入加载动画实现代码
2019/11/14 Javascript
js实现九宫格抽奖
2020/03/19 Javascript
angula中使用iframe点击后不执行变更检测的问题
2020/05/10 Javascript
[28:05]完美世界DOTA2联赛循环赛Inki vs DeMonsTer 第一场 10月30日
2020/10/31 DOTA
c++生成dll使用python调用dll的方法
2014/01/20 Python
Python全排列操作实例分析
2018/07/24 Python
Python的高阶函数用法实例分析
2019/04/11 Python
对python tkinter窗口弹出置顶的方法详解
2019/06/14 Python
解决Jupyter Notebook使用parser.parse_args出现错误问题
2020/04/20 Python
python中sys模块是做什么用的
2020/08/16 Python
C语言笔试题回忆
2015/04/02 面试题
大学生蛋糕店创业计划书
2014/01/13 职场文书
个人工作主要事迹
2014/05/08 职场文书
2014年挂职干部工作总结
2014/12/06 职场文书
工程部部长岗位职责
2015/02/12 职场文书
车间主任岗位职责范本
2015/04/08 职场文书
vue基于Teleport实现Modal组件
2021/05/31 Vue.js