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脚本调试方法小结
Nov 24 Javascript
javascript下数值型比较难点说明
Jun 07 Javascript
jQuery实现的兼容性浮动层示例
Aug 02 Javascript
用js实现简单算法的实例代码
Sep 24 Javascript
JS使用正则截取两个字符串之间的字符串实现方法详解
Jan 06 Javascript
JS 实现分页打印功能
May 16 Javascript
webpack DllPlugin xxx is not defined解决办法
Dec 13 Javascript
react使用CSS实现react动画功能示例
May 18 Javascript
keep-Alive搭配vue-router实现缓存页面效果的示例代码
Jun 24 Javascript
vue中v-for循环选中点击的元素并对该元素添加样式操作
Jul 17 Javascript
antd 表格列宽自适应方法以及错误处理操作
Oct 27 Javascript
详解vue-cli项目在IE浏览器打开报错解决方法
Dec 10 Vue.js
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
Discuz 模板语句分析及知识技巧
2009/08/21 PHP
php字符串按照单词进行反转的方法
2015/03/14 PHP
jQuery 动画弹出窗体支持多种展现方式
2010/04/29 Javascript
JS 进度条效果实现代码整理
2011/05/21 Javascript
js 时间函数应用加、减、比较、格式转换的示例代码
2013/08/23 Javascript
js的image onload事件使用遇到的问题
2014/07/15 Javascript
基于jQuery实现多层次的手风琴效果附源码
2015/09/21 Javascript
jQuery Real Person验证码插件防止表单自动提交
2015/11/06 Javascript
基于jQuery实现网页打印功能
2015/12/01 Javascript
利用vue-router实现二级菜单内容转换
2016/11/30 Javascript
jQuery选择器实例应用
2017/01/05 Javascript
React.js中常用的ES6写法总结(推荐)
2017/05/09 Javascript
node.js用fs.rename强制重命名或移动文件夹的方法
2017/12/27 Javascript
浅谈webpack-dev-server的配置和使用
2018/05/17 Javascript
了解ESlint和其相关操作小结
2018/05/21 Javascript
axios 实现post请求时把对象obj数据转为formdata
2019/10/31 Javascript
python正则表达式re模块详细介绍
2014/05/29 Python
Python使用scrapy采集数据时为每个请求随机分配user-agent的方法
2015/04/08 Python
python logging 日志轮转文件不删除问题的解决方法
2016/08/02 Python
一看就懂得Python的math模块
2018/10/21 Python
Python3.4解释器用法简单示例
2019/03/22 Python
Python实现快速排序的方法详解
2019/10/25 Python
Django实现简单网页弹出警告代码
2019/11/15 Python
python实现简单图书管理系统
2019/11/22 Python
执行Python程序时模块报错问题
2020/03/26 Python
Whittard官方海外旗舰店:英国百年茶叶品牌
2018/02/22 全球购物
奥兰多迪士尼门票折扣:Undercover Tourist
2018/07/09 全球购物
俄语专业毕业生推荐信
2013/10/28 职场文书
劳动工资科岗位职责范本
2014/03/02 职场文书
优秀中职教师事迹材料
2014/08/26 职场文书
工作疏忽、懈怠的检讨书
2014/09/11 职场文书
2014年团支部工作总结
2014/11/17 职场文书
小学四年级班主任工作经验交流材料
2015/11/02 职场文书
Redis持久化与主从复制的实践
2021/04/27 Redis
MySQL如何构建数据表索引
2021/05/13 MySQL
前端JavaScript大管家 package.json
2021/11/02 Javascript