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;
};

(0)

相关推荐

  • C#排序算法的比较分析

    本文实例分析了C#的各种排序算法.分享给大家供大家参考.具体分析如下: 首先通过图表比较不同排序算法的时间复杂度和稳定性. 排序方法 平均时间 最坏情况 最好情况 辅助空间 稳定性 直接插入排序 O(n2) O(n2) O(n) O(1) 是 冒泡排序 O(n2) O(n2) O(n) O(1) 是 简单选择排序 O(n2) O(n2) O(n2) O(1) 是 希尔排序 - O(nlog2n)~O(n2) O(nlog2n)~O(n2) O(1) 否 快速排序 O(nlog2n) O(n2)

  • c#的datatable转list示例

    复制代码 代码如下: using System;using System.Collections.Generic;using System.Data;using System.Reflection; namespace jdrz.HumanIdentify{    public class Helper    {        /// <summary>        /// DataTable 转换为List 集合        /// </summary>        ///

  • C#对list列表进行随机排序的方法

    本文实例讲述了C#对list列表进行随机排序的方法.分享给大家供大家参考.具体实现方法如下: public List<T> RandomSortList<T>(List<T> ListT) { Random random = new Random(); List<T> newList = new List<T>(); foreach (T item in ListT) { newList.Insert(random.Next(newList.Co

  • c#冒泡排序算法示例

    复制代码 代码如下: using System;using System.Collections.Generic;using System.Linq;using System.Text; namespace 冒泡排序{    class Program    {        static void swap( ref int  atemp, ref int  btemp)//注意ref的使用        {            int temp = atemp;            at

  • C#实现对数组进行随机排序类实例

    本文实例讲述了C#实现对数组进行随机排序类.分享给大家供大家参考.具体如下: 这个一个扩充C#随机数发生器的类,可以随机生成指定范围的数字,可以随机对数组进行排序,非常好用 using System; namespace DotNet.Utilities { /// <summary> /// 使用Random类生成伪随机数 /// </summary> public class RandomHelper { //随机数对象 private Random _random; #reg

  • C#中List和数组之间转换的方法

    本文实例讲述了C#中List和数组之间转换的方法.分享给大家供大家参考.具体分析如下: 一.List转数组 (从List<string>转到string[]) List<string> listS=new List<string>(); listS.Add("str"); listS.Add("hello"); string[] str=listS.ToArray(); 二.数组转List (从string[]转到List<

  • C#遍历List并删除某个元素的方法

    本文实例分析了C#遍历List并删除某个元素的方法.分享给大家供大家参考.具体如下: 1.我们选择用for循环: for(int i=0;i<list.count;i++) { if(list[i]) { list.RemoveAt(i); } } 如果这样循环,肯定不对, {A B C D E F G H}  假设当前遍历到D(i=3),移除,接着遍历i=4(F), 此时跳过了E(i=3) 2.我们使用倒序遍历,这个问题就解决了 for(int i=list.Count-1;i>=0;i--

  • C#数组反转与排序实例分析

    本文实例分析了C#数组反转与排序的方法.分享给大家供大家参考.具体实现方法如下: C#数组反转 复制代码 代码如下: using System;  using System.Collections.Generic;  using System.Linq;  using System.Text;    namespace 数据反转  {      class Program      {          static void Main(string[] args)          {    

  • 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添加到此列表的尾部. * @pa

  • JS模拟自动点击的简单实例

    复制代码 代码如下: <html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>javascript模拟鼠标自动点击链接</title><script type="text/java

  • JS取文本框中最小值的简单实例

    效果:取最小值 事件:当输入值之后,取出最小值. 代码: 复制代码 代码如下: /*单块最小值*/            function Gettbqdzxz() {                var tbkyqd1 = ChangeFloat($("#<%=tbkyqd1.ClientID %>").val());                var tbkyqd2 = ChangeFloat($("#<%=tbkyqd2.ClientID %&g

  • Angularjs中ng-repeat的简单实例

    Angularjs中ng-repeat的简单实例 第一个例子:使用ng-repeat最简单的例子 <html ng-app="myApp"> <head> <title>angularjs-demo</title> <script type="text/javascript" src="angular.min.js" charset="utf-8"></scri

  • 纯js实现html转pdf的简单实例(推荐)

    项目开发中遇到了一个变态需求,需要把一整个页面导出为pdf格式,而且要保留页面上的所有的表格.svg图片和样式. 简而言之,就是希望像截图一样,把整个页面截下来,然后保存成pdf. 咋不上天呢-- 查了一下,能够实现html转pdf的方法还是挺多的,大概有以下几种: 1.大部分浏览器就有这个功能.然而我们客户要的可不是这个,人家要的是能够在系统中主动触发的导出为pdf功能,所以这种方案pass. 2.利用第三方工具.我找到了一种利用wkhtmltopdf这种工具来导出的方案,自己在我们的项目中试

  • js 获取站点应用名的简单实例

    一直用EL表达式${pageContext.request.contextPath}来传递应用名,在用到JS中时,很麻烦,虽然也可以用,但是加大了代码复杂度,因此这里推荐用JS获取应用名 function getContextPath() { var contextPath = document.location.pathname; var index =contextPath.substr(1).indexOf("/"); //这个地方可能有问题,要根据具体项目适当修改 contex

  • JS判断日期格式是否合法的简单实例

    类似于PHP中的Checkdate. //函数名:CheckDateTime //功能介绍:检查是否为日期时间 function CheckDateTime(str){ var reg = /^(\d+)-(\d{1,2})-(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/; var r = str.match(reg); if(r==null)return false; r[2]=r[2]-1; var d= new Date(r[1], r[2],r[3],

  • js跨域调用WebService的简单实例

    步骤1.   在web.config中的system.web节点里加入 <!--此节点可允许脚本跨域调用webservice--> <webServices> <protocols> <add name="HttpPost"/> <add name="HttpGet"/> </protocols> </webServices> <!--此节点可允许脚本跨域调用webservic

  • HTML页面,测试JS对C函数的调用简单实例

    这里记一下,以后要用的时候可以查! <HTML> <HEAD> <META NAME="GENERATOR" Content="Microsoft Visual Studio"> <meta http-equiv="content-type" content="text/html;charset=gbk"> <TITLE>HTML页面,测试JS对C函数的调用</

  • 使用JS模拟锚点跳转的实例

    A-HTML锚点定义: 设置锚: <a href="#mao" rel="external nofollow" >&nsbp;</a> 设置点:(为了浏览器兼容性,id和name一起设置) <a id="mao" name="mao">跳至第一个锚点</a> B:使用JS模拟锚点跳转: js中location.href可以跳转至某个url: 1.window.locati

随机推荐