收集的一些Array及String原型对象的扩展实现代码


Posted in Javascript onDecember 05, 2010

从无忧脚本收集过来的,有些的确还不错,比较实用,值得收藏一下。
扩展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.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; 
}
Javascript 相关文章推荐
Javascript条件判断使用小技巧总结
Sep 08 Javascript
layer实现弹窗提交信息
Dec 12 Javascript
学习使用Bootstrap输入框、导航、分页等常用组件
May 11 Javascript
React Native 自定义下拉刷新上拉加载的列表的示例
Mar 01 Javascript
vue中设置height:100%无效的问题及解决方法
Jul 27 Javascript
vue异步axios获取的数据渲染到页面的方法
Aug 09 Javascript
为jquery的ajax请求添加超时timeout时间的操作方法
Sep 04 jQuery
vue解决弹出蒙层滑动穿透问题的方法
Sep 22 Javascript
VUE v-for循环中每个item节点动态绑定不同函数的实例
Sep 26 Javascript
Vue项目部署在Spring Boot出现页面空白问题的解决方案
Nov 26 Javascript
解决Vue项目打包后打开index.html页面显示空白以及图片路径错误的问题
Oct 25 Javascript
解决vue中的无限循环问题
Jul 27 Javascript
script标签的 charset 属性使用说明
Dec 04 #Javascript
本地对象Array的原型扩展实现代码
Dec 04 #Javascript
悄悄用脚本检查你访问过哪些网站的代码
Dec 04 #Javascript
jQuery)扩展jQuery系列之一 模拟alert,confirm(一)
Dec 04 #Javascript
高效的表格行背景隔行变色及选定高亮的JS代码
Dec 04 #Javascript
javascript innerHTML使用分析
Dec 03 #Javascript
统计出现最多的字符次数的js代码
Dec 03 #Javascript
You might like
php设计模式 Observer(观察者模式)
2011/06/26 PHP
php引用计数器进行垃圾收集机制介绍
2012/09/19 PHP
php实现的验证码文件类实例
2015/06/18 PHP
Yii2.0实现生成二维码功能实例
2017/10/24 PHP
struts2+jquery组合验证注册用户是否存在
2014/04/30 Javascript
深入理解node exports和module.exports区别
2016/06/01 Javascript
JavaScrpt中如何使用 cookie 设置查看与删除功能
2017/07/09 Javascript
详解Vue-Cli 异步加载数据的一些注意点
2017/08/12 Javascript
javascript帧动画(实例讲解)
2017/09/02 Javascript
Bootstrap Tooltip显示换行和左对齐的解决方案
2017/10/11 Javascript
js登录滑动验证的实现(不滑动无法登陆)
2018/01/03 Javascript
浅谈vue的几种绑定变量的值 防止其改变的方法
2018/03/01 Javascript
JS/HTML5游戏常用算法之路径搜索算法 随机迷宫算法详解【普里姆算法】
2018/12/13 Javascript
JS三级联动代码格式实例详解
2019/12/30 Javascript
js 数组当前行添加数据方法详解
2020/07/28 Javascript
vue3.0 自适应不同分辨率电脑的操作
2021/02/06 Vue.js
[00:52]DOTA2第二届亚洲邀请赛预选赛宣传片
2017/01/13 DOTA
python读取TXT到数组及列表去重后按原来顺序排序的方法
2015/06/26 Python
老生常谈Python之装饰器、迭代器和生成器
2017/07/26 Python
Python实现决策树C4.5算法的示例
2018/05/30 Python
DRF跨域后端解决之django-cors-headers的使用
2019/01/27 Python
ML神器:sklearn的快速使用及入门
2019/07/11 Python
python常见字符串处理函数与用法汇总
2019/10/30 Python
Pytorch DataLoader 变长数据处理方式
2020/01/08 Python
Django数据统计功能count()的使用
2020/11/30 Python
html5 datalist 选中option选项后的触发事件
2020/03/05 HTML / CSS
IdealFit官方网站:女性蛋白质、补充剂和运动服装
2019/03/24 全球购物
车祸赔偿收入证明
2014/01/09 职场文书
自我鉴定 电子商务专业
2014/01/30 职场文书
学校搬迁方案
2014/06/15 职场文书
个人授权委托书范文
2014/09/21 职场文书
工程安全生产协议书
2014/11/21 职场文书
社会实践活动总结格式
2015/05/11 职场文书
导游词之山东八大关
2019/12/18 职场文书
html粘性页脚的具体使用
2022/01/18 HTML / CSS
如何使用SQL Server语句创建表
2022/04/12 SQL Server