JavaScript 常用数组函数

来源:互联网 发布:深圳网络维护培训 编辑:程序博客网 时间:2024/05/16 19:34
//数组去重
Array.prototype.quchong=function(){    var o={},r=[];//使用对象去重  效率在indexof的一千倍左右    for(var i=0;i<this.length;i++){        if(!n[this[i]]){            n[this[i]]=1;            r.push(this[i]);        }    }    return r;}
//取最小值在数组中的位置Array.prototype.sum=function(){    var o=0;    for(var i=0;i<this.length;i++){       o+=this[i];    }    return o;}
//数组取平均值Array.prototype.avg=function(){    if(this.length==0){return}    return this.sum(this)/this.length}
//取最大值和在数组中的位置Array.prototype.max=function(){    var o={index:0,value:0};    for(var i=0;i<this.length;i++){       if(this[i]<o.value){        o.value=this[i];        o.index=i;       }    }    return o;}//取合集Array.prototype.collection=function(arr){    var o={},a=[],length=0;    length=this.length>arr.length?this.length:arr.length;    for(var i=0;i<length;i++){       if(arr.length>i&&!o[arr[i]]){        o[arr[i]]=1;        a.push(arr[i])       }       if(this.length>i&&!o[this[i]]){           o[this[i]]=1;           a.push(this[i])       }    }    return a;}//取交集Array.prototype.same=function(arr){    var o={},a=[],length=0;    if(this.length>arr.length){        o.length=this.length;        o.arr=this;    }else{        o.length=arr.length;        o.arr=arr;    }        for(var i=0;i<o.length;i++){      if( this.indexOf(o.arr[i])!=-1){         a.push(arr[i]);      }    }    return a;}//取差集Array.prototype.different=function(arr){    var o={},a=[],length=0;    if(this.length>arr.length){        o.length=this.length;        o.arr=this;    }else{        o.length=arr.length;        o.arr=arr;    }        for(var i=0;i<o.length;i++){      if( this.length>i&&this.indexOf(o.arr[i])==-1){         a.push(arr[i]);      }       if( arr.length>i&&arr.indexOf(o.this[i])==-1){         a.push(this[i]);      }    }    return a;}
欢迎各位提新的函数  或者更快更好的 方式