zoukankan      html  css  js  c++  java
  • JS:收集的一些Array及String原型对象的扩展实现代码

    扩展Array的原型对象的方法 

    // 删除数组中数据 
    Array.prototype.del = function(n) 
    { 
    if (n<0) return this; 
    return this.slice(0,n).concat(this.slice(n+1,this.length)); 
    } 
    // 数组洗牌 
    Array.prototype.random = function() 
    { 
    var nr=[], me=this, t; 
    while(me.length>0) 
    { 
    nr[nr.length] = me[t = Math.floor(Math.random() * me.length)]; 
    me = me.del(t); 
    } 
    return nr; 
    } 
    // 数字数组排序 
    Array.prototype.sortNum = function(f) 
    { 
    if (!f) f=0; 
    if (f==1) return this.sort(function(a,b){return b-a;}); 
    return this.sort(function(a,b){return a-b;}); 
    } 
    // 获得数字数组的最大项 
    Array.prototype.getMax = function() 
    { 
    return this.sortNum(1)[0]; 
    } 
    // 获得数字数组的最小项 
    Array.prototype.getMin = function() 
    { 
    return this.sortNum(0)[0]; 
    } 
    // 数组第一次出现指定元素值的位置 
    Array.prototype.indexOf = function(o) 
    { 
    for (var i=0; i<this.length; i++) if (this[i]==o) return i; 
    return -1; 
    } 
    // 移除数组中重复的项 
    Array.prototype.removeRepeat=function() 
    { 
    this.sort(); 
    var rs = []; 
    var cr = false; 
    for (var i=0; i<this.length; i++) 
    { 
    if (!cr) cr = this[i]; 
    else if (cr==this[i]) rs[rs.length] = i; 
    else cr = this[i]; 
    } 
    var re = this; 
    for (var i=rs.length-1; i>=0; i--) re = re.del(rs[i]); 
    return re; 
    } 

    例子: 
    var arr=["ni","wo","ta"]; 
    删除数组中的“wo” 
    var newArr=arr.del(1); 
    返回数组中“me”第一次出现的位置,若没有就返回-1 
    var strPos=arr.indexOf("me"); 

    扩展String的原型对象的方法 

    //替换字符串,全部替换
    String.prototype.replaceAll = function(s1,s2){ 
    return this.replace(new RegExp(s1,"gm"),s2); 
    }
    //获取字符数组 
    String.prototype.ToCharArray=function() 
    { 
    return this.split(""); 
    } 
    //获取N个相同的字符串 
    String.prototype.Repeat=function(num) 
    { 
    var tmpArr=[]; 
    for(var i=0;i<num;i++) tmpArr.push(this); 
    return tmpArr.join(""); 
    } 
    //逆序 
    String.prototype.Reverse=function() 
    { 
    return this.split("").reverse().join(""); 
    } 
    //测试是否是数字 
    String.prototype.IsNumeric=function() 
    { 
    var tmpFloat=parseFloat(this); 
    if(isNaN(tmpFloat)) return false; 
    var tmpLen=this.length-tmpFloat.toString().length; 
    return tmpFloat+"0".Repeat(tmpLen)==this; 
    } 
    //测试是否是整数 
    String.prototype.IsInt=function() 
    { 
    if(this=="NaN") return false; 
    return this==parseInt(this).toString(); 
    } 
    // 合并多个空白为一个空白 
    String.prototype.resetBlank = function() 
    { 
    return this.replace(/s+/g," "); 
    } 
    // 除去左边空白 
    String.prototype.LTrim = function() 
    { 
    return this.replace(/^s+/g,""); 
    } 
    // 除去右边空白 
    String.prototype.RTrim = function() 
    { 
    return this.replace(/s+$/g,""); 
    } 
    // 除去两边空白 
    String.prototype.trim = function() 
    { 
    return this.replace(/(^s+)|(s+$)/g,""); 
    } 
    // 保留数字 
    String.prototype.getNum = function() 
    { 
    return this.replace(/[^d]/g,""); 
    } 
    // 保留字母 
    String.prototype.getEn = function() 
    { 
    return this.replace(/[^A-Za-z]/g,""); 
    } 
    // 保留中文 
    String.prototype.getCn = function() 
    { 
    return this.replace(/[^u4e00-u9fa5uf900-ufa2d]/g,""); 
    } 
    // 得到字节长度 
    String.prototype.getRealLength = function() 
    { 
    return this.replace(/[^x00-xff]/g,"--").length; 
    } 
    // 从左截取指定长度的字串 
    String.prototype.left = function(n) 
    { 
    return this.slice(0,n); 
    } 
    // 从右截取指定长度的字串 
    String.prototype.right = function(n) 
    { 
    return this.slice(this.length-n); 
    } 
    // HTML编码 
    String.prototype.HTMLEncode = function() 
    { 
    var re = this; 
    var q1 = [/x26/g,/x3C/g,/x3E/g,/x20/g]; 
    var q2 = ["&","<",">"," "]; 
    for(var i=0;i<q1.length;i++) 
    re = re.replace(q1[i],q2[i]); 
    return re; 
    } 
    // Unicode转化 
    String.prototype.ascW = function() 
    { 
    var strText = ""; 
    for (var i=0; i<this.length; i++) strText += "&#" + this.charCodeAt(i) + ";"; 
    return strText; 
    } 
  • 相关阅读:
    Netty实例
    八大排序算法Java实现
    在linux服务器上初步定位java接口耗时
    Manjaro 18.X 配置记录
    Linux下搭建ELK和初步使用
    ubuntu下docker简单安装rabbitmq
    Linux禁启用ping的方法
    ubuntu下docker简单安装mysql
    Ubuntu18优化桌面版的运行速度
    ubuntu下webpack初始化vue项目
  • 原文地址:https://www.cnblogs.com/blueskycc/p/5188952.html
Copyright © 2011-2022 走看看