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 技巧大全(新手入门篇)
May 12 Javascript
用js实现trim()的解决办法
Apr 16 Javascript
JS字符串处理实例代码
Aug 05 Javascript
js实现数组去重、判断数组以及对象中的内容是否相同
Nov 29 Javascript
js function定义函数的几种不错方法
Feb 27 Javascript
使用jsonp实现跨域获取数据实例讲解
Dec 25 Javascript
JS简单获取当前年月日星期的方法示例
Feb 07 Javascript
node.js爬虫爬取拉勾网职位信息
Mar 14 Javascript
详解Angular-cli生成组件修改css成less或sass的实例
Jul 27 Javascript
详解用Node.js写一个简单的命令行工具
Mar 01 Javascript
vue实现在线学生录入系统
May 30 Javascript
vue3.0 项目搭建和使用流程
Mar 04 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
php curl post 时出现的问题解决
2014/01/30 PHP
php几个预定义变量$_SERVER用法小结
2014/11/07 PHP
php返回相对时间(如:20分钟前,3天前)的方法
2015/04/14 PHP
PHP面向对象中new self()与 new static()的区别浅析
2017/08/17 PHP
js中把JSON字符串转换成JSON对象最好的方法
2014/03/21 Javascript
JavaScript 性能优化小结
2015/10/12 Javascript
JavaScript实现简洁的俄罗斯方块完整实例
2016/03/01 Javascript
jQuery图片轮播实现并封装(一)
2016/12/03 Javascript
详解jquery easyui之datagrid使用参考
2016/12/05 Javascript
BootStrap实现轮播图效果(收藏)
2016/12/30 Javascript
js实现文字选中分享功能
2017/01/25 Javascript
判断横屏竖屏(三种)
2017/02/13 Javascript
Angular 2 ngForm中的ngModel、[ngModel]和[(ngModel)]的写法
2017/06/29 Javascript
使用JS实现图片轮播的实例(前后首尾相接)
2017/09/21 Javascript
Node.js readline 逐行读取、写入文件内容的示例
2018/03/01 Javascript
iView框架问题整理小结
2018/10/16 Javascript
layer弹出层倒计时关闭的实现方法
2019/09/27 Javascript
AutoJs实现刷宝短视频的思路详解
2020/05/22 Javascript
[01:31:22]DOTA2-DPC中国联赛定级赛 LBZS vs Magma BO3第二场 1月10日
2021/03/11 DOTA
Python 正则表达式(转义问题)
2014/12/15 Python
Python将一个Excel拆分为多个Excel
2018/11/07 Python
python使用pygame框架实现推箱子游戏
2018/11/20 Python
运用Python的webbrowser实现定时打开特定网页
2019/02/21 Python
python3.8与pyinstaller冲突问题的快速解决方法
2020/01/16 Python
基于tensorflow指定GPU运行及GPU资源分配的几种方式小结
2020/02/03 Python
Python3.7将普通图片(png)转换为SVG图片格式(网站logo图标)动起来
2020/04/21 Python
Django搭建项目实战与避坑细节详解
2020/12/06 Python
网页中的电话号码如何实现一键直呼效果_附示例
2016/03/15 HTML / CSS
【HTML5】Canvas绘制简单图片教程
2016/05/13 HTML / CSS
美国球鞋寄卖网站:Stadium Goods
2018/05/09 全球购物
swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?
2013/03/30 面试题
竞选文艺委员演讲稿
2014/04/28 职场文书
质量负责人岗位职责
2015/02/15 职场文书
2015年推广普通话演讲稿
2015/03/20 职场文书
2019年妇科护士的自我鉴定(3篇)
2019/09/26 职场文书
Python使用psutil库对系统数据进行采集监控的方法
2021/08/23 Python