IE下很多Array的方法都不被支持。每次都要写。所以记下来,以免忘记:

以下是对Array的一些扩展,在FF ,google 下是不需要加的。

/**
 * 方法Array.filter(function(item,index,array){})
 * 功能:迭代数组.
 * 参数:判断方法function(item,index,array),{item:元素,index:元素索引,array:数组自身}.
 * 返回:为每一个元素运行参数函数,保存所有返回true的元素组成的数组并返回.
 */
Array.prototype.filter = function(param){
    try{
        var arrLength = this.length;
        var resultArr = new Array();
        for(var i = 0; i < arrLength; i++){
            var item = this[i];
            if(param(item,i,this)){
                resultArr.push(this[i]);
            }
        }
        return resultArr;
    }catch(err){
        var txt = "Array.filter存在一个错误。\n\n";
        txt += "错误描述:"+err.description+"\n\n";
        txt += "点击确定继续。\n\n";
        alert(txt);
    }
    
}

/*
* 方法:Array.removeAt(Index)
* 功能:删除数组元素.
* 参数:Index删除元素的下标.
* 返回:在原数组上修改数组
*/

Array.prototype.removeAt=function(Index)
{
   if(isNaN(Index)||Index>this.length){return false;}
   for(var i=0,n=0;i<this.length;i++)
   {
    if(this[i]!=this[Index])
    {
       this[n++]=this[i]
    }
   }
   this.length-=1
}
            
/*                           
* 方法:Array.remove(obj)    
* 功能:删除数组元素.       
* 参数:要删除的对象.   
* 返回:在原数组上修改数组  
*/                          
                              
Array.prototype.remove=function(obj)
{
   if(null==obj){return;}
   for(var i=0,n=0;i<this.length;i++)
   {
    if(this[i]!=obj)
    {
     this[n++]=this[i];
    }
   }
   this.length-=1
}

/*                           
* 方法:Array.Contains(obj)    
* 功能:确定某个元素是否在数组中.       
* 参数:要查找的Object对象
* 返回:找到返回true,否则返回false;
*/                                               
Array.prototype.Contains=function(obj)
{
   if(null==obj){return;}
   for(var i=0,n=0;i<this.length;i++)
   {
    if(this[i]==obj)
    {
     return true;
    }
   }
 
   return false;
}

/*                           
* 方法:Array.IndexOf(obj)    
* 功能:搜索指定的Object,并返回第一个匹配项从零开始的索引       
* 参数:要查找的Object对象  
* 返回:找到返回该元素在数组中的索引,否则返回-1
*/
Array.prototype.indexOf=function(obj)
{
   if(null==obj){return;}
   {
    for(var i=0,n=0;i<this.length;i++)
    {
     if(this[i]==obj)
     {
      return i;
     }
    }   
   }
 
   return -1;
}

/*                           
* 方法:Array.Clear()    
* 功能:消空数组元素.       
* 参数:无.   
* 返回:空数组
*/
Array.prototype.Clear=function()                                   
{                                                                  
   this.length=0;                                             
}

/**
 * 方法:Array.removeVoidElement()
 * 功能:删除无效的元素(null/"")
 * 参数:无。
 * 返回:在原数组上修改数组
 */
Array.prototype.removeVoidElement=function(){
    for(var i = 0; i < this.length; i++){
        if("" == this[i] || null == this[i] || "null" == this[i]){
            this.remove(this[i]);
        }
    }
}

js中Array的一些扩展的更多相关文章

  1. JS中Array数组的三大属性用法

    原文:JS中Array数组的三大属性用法 Array数组主要有3大属性,它们分别是length属性.prototype属性和constructor属性. JS操作Array数组的方法及属性 本文总结了 ...

  2. String方法,js中Array方法,ES5新增Array方法,以及jQuery中Array方法

    相关阅读:https://blog.csdn.net/u013185654/article/details/78498393 相关阅读:https://www.cnblogs.com/huangyin ...

  3. JS中Array详细用法

    1.数组的创建 var name= new Array(); //创建一个数组 name[0]="zhangsan";   //给数组赋值 name[1]="lisi&q ...

  4. js中array的join和concat的区别

    首先:concat方法定义:concat() 方法用于连接两个或多个数组.该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本.举例说明:1 /*concat()结果返回的是一个数组*/ 2 3 ...

  5. js中Array对象方法详解

    操作方法:concat() slice() splice() concat()方法可以基于当前数组中的所有项创建一个新数组.具体来说,这个方法会创建当前数组一个副本,将接收到参数添加到副本的末尾,最后 ...

  6. Js中Array数组学习总结

    第一次写博客...有点方... 小白一枚(是真的小白),自学前端,下面来说说我在学习过程中总结的一些数组操作,如果说哪有错误,请各位大神多多指出,小的虚心接受. 引用类型分为Object类型(所谓的对 ...

  7. js中Array数组基本方法

    总结:push() 添加元素到数组未尾, 返回数组长度 unshift() 添加元素到数组头部, 返回数组长度 pop() 删除数组未尾元素, 返回删除元素 shift() 删除数组头部元素, 返回删 ...

  8. js中Array数组的属性和方法

    这是我自己整理出来的一些关于Array数组的属性和方法,即查即用. 1.Array.length属性:数组的项数组,始终返回0或者更大的值. 2.instanceof操作符:value instanc ...

  9. 关于JS中array对象的push( )

    push()的参数传的是指针,不是值. var arr = new Array(); var item = 5; arr.push(item); var item = 6; 运行以上代码,arr中的元 ...

随机推荐

  1. 详解 $_SERVER 函数中QUERY_STRING和REQUEST_URI区别(转)

    对于php$_SERVER这个全局变量 ,里面有很多的参数,慢慢的熟悉 1,http://localhost/aaa/ (打开aaa中的index.php)结果:$_SERVER['QUERY_STR ...

  2. 动态加载框架DL分析

    动态加载框架DL分析 插件化开发,主要解决三个问题1.动态加载未安装的apk,dex,jar等文件2.activity生命周期的问题,还有service3.Android的资源调用的问题 简单说一下怎 ...

  3. 工作中最常用的Excel函数公式大全

    电脑那些事儿2016-05-18 22:23:02微软 公式 工作阅读(22574)评论(1) 声明:本文由入驻搜狐公众平台的作者撰写,除搜狐官方账号外,观点仅代表作者本人,不代表搜狐立场.举报 Wo ...

  4. WPS 认证机制

    WPS 认证机制 WPS(Wi-Fi Protected Setup,Wi-Fi保护设置)(有的叫做AOSS.有的叫做QSS,不过功能都一致.)是由Wi-Fi联盟组织实施的认证项目,主要致力于简化无线 ...

  5. 常见电子元器件检测方法。——Arvin

    电子设备中使用着大量各种类型的电子元器件,设备发生故障大多是由于电子元器件失效或损坏引起的.因此怎么正确检测电子元器件就显得尤其重要,这也是电子维修人员必须掌握的技能.我在电器维修中积累了部分常见电子 ...

  6. System.Data.SqlClient.SqlError:无法对过程'XXX' 执行 删除,因为它正用于复制。消息 3724,级别 16

    遇到这么一个错误,想对[northwindcs]这个数据库搭建复制,从B服务器发布订阅到C服务器,采用备份还原进行初始化,但是在数据库还原时,报无法对过程‘XXX’执行删除,因为它正用于复制.表面上一 ...

  7. contiki-定时器etimer

    Contiki内核是基于事件驱动和Protothreads机制,事件既可以是外部事件(比如按键,数据到达),也可以是内部事件(如时钟中断).定时器的重要性不言而喻,Contiki提供了5种定时器模型, ...

  8. ADO.NET 使用通用数据库操作类Database (SQL Server)

    一.Web.config配置 <connectionStrings> <add name="constr_name" connectionString=" ...

  9. JavaScript 深入了解基本类型和引用类型的值

    转载:https://segmentfault.com/a/1190000006752076 一个变量可以存放两种类型的值,基本类型的值(primitive values)和引用类型的值(refere ...

  10. Shell脚本快速入门

    最近看了下Shell脚本.曾经遇到很多现成的工具包里边就多次用到了Shell脚本.总之这东西的作用无非就是将一系列的操作进行整合. ·整合后使得一套工作更加模块化规范化. ·批量处理要比手动操作快得多 ...