js模拟C#中List的简单实例

 更新时间:2014年03月06日 09:04:47   作者:  
本篇文章主要是对js模拟C#中List的简单实例进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助

复制代码 代码如下:

/*
 * 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中的同名标识符优先级

    这篇文章主要介绍了JavaScript中的同名标识符优先级。需要的朋友可以过来参考下,希望对大家有所帮助
    2013-12-12
  • antd/fusion表格增加圈选复制功能思路详解

    antd/fusion表格增加圈选复制功能思路详解

    我们存在着大量在PC页面通过表格看数据业务场景,表格又分为两种,一种是antd / fusion这种基于dom元素的表格,另一种是通过 canvas 绘制的类似 excel 的表格,这篇文章主要介绍了antd/fusion表格增加圈选复制功能,需要的朋友可以参考下
    2023-09-09
  • JavaScript数据结构之双向链表定义与使用方法示例

    JavaScript数据结构之双向链表定义与使用方法示例

    这篇文章主要介绍了JavaScript数据结构之双向链表定义与使用方法,简单介绍了双向链表的原理,并结合实例形式分析了双向链表的定义与使用方法,需要的朋友可以参考下
    2017-10-10
  • 如何通过setTimeout理解JS运行机制详解

    如何通过setTimeout理解JS运行机制详解

    这篇文章主要给大家介绍了关于如何通过setTimeout理解JS运行机制的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用js具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-03-03
  • JavaScript数组及非数组对象的深浅克隆详解原理

    JavaScript数组及非数组对象的深浅克隆详解原理

    JavaScript中数组的方法种类众多,在ES3-ES7不同版本时期都有新方法;并且数组的方法还有原型方法和从object继承的方法,本文介绍了JavaScript数组及非数组对象的深浅克隆,希望读者能从中有所收获
    2021-10-10
  • 网页加载时页面显示进度条加载完成之后显示网页内容

    网页加载时页面显示进度条加载完成之后显示网页内容

    网页加载时页面显示进度条(加载完成时显示网页内容),这种效果在浏览网页很常见,本文也介绍一种实现方法,需要了解的朋友可以参考下
    2012-12-12
  • 浅谈jQuery中setInterval()方法

    浅谈jQuery中setInterval()方法

    这篇文章主要介绍了浅谈jQuery中setInterval()方法,十分的简单实用,有需要的小伙伴可以参考下。
    2015-07-07
  • js实现简单的验证码

    js实现简单的验证码

    这篇文章主要介绍了js实现简单验证码的方法,验证码主要是为了网站的安全性,防止恶意注册和登陆,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2015-12-12
  • uniapp实现附近商家定位的示例代码

    uniapp实现附近商家定位的示例代码

    本文主要介绍了uniapp实现附近商家定位的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-08-08
  • 微信小程序如何设置基本的页面样式,做出用户界面UI

    微信小程序如何设置基本的页面样式,做出用户界面UI

    这篇文章主要介绍了微信小程序如何设置基本的页面样式,做出用户界面UI。如何为这个页面添加样式,使它看上去更美观,教大家写出实际可以使用的页面。
    2022-12-12

最新评论