收集的一些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 相关文章推荐
IE8 原生JSON支持
Apr 13 Javascript
javascript 浏览器检测代码精简版
Mar 04 Javascript
javascript利用控件对windows的操作实现原理与应用
Dec 23 Javascript
JQuery文字列表向上滚动的代码
Nov 13 Javascript
点击button获取text内容并改变样式的js实现
Sep 09 Javascript
js带前后翻页的图片切换效果代码分享
Sep 08 Javascript
Bootstrap响应式导航由768px变成992px的实现代码
Jun 15 Javascript
angularjs2 ng2 密码隐藏显示的实例代码
Aug 01 Javascript
浅谈在Vue-cli里基于axios封装复用请求
Nov 06 Javascript
微信小程序实现滴滴导航tab切换效果
Jul 24 Javascript
Vue 配合eiement动态路由,权限验证的方法
Sep 26 Javascript
nestjs返回给前端数据格式的封装实现
Feb 22 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
用Flash图形化数据(一)
2006/10/09 PHP
对淘宝URL中ID提取的PHP代码
2013/09/01 PHP
PHP中source #N问题的解决方法
2014/01/27 PHP
PHP获取当前所在目录位置的方法
2014/11/26 PHP
Javascript this关键字使用分析
2008/10/21 Javascript
js 刷新页面的代码小结 推荐
2010/04/02 Javascript
jquery autocomplete自动完成插件的的使用方法
2010/08/07 Javascript
将string解析为json的几种方式小结
2010/11/11 Javascript
JQuery.Ajax之错误调试帮助信息介绍
2013/07/04 Javascript
js简单实现根据身份证号码识别性别年龄生日
2013/11/29 Javascript
JavaScript原生对象之Number对象的属性和方法详解
2015/03/13 Javascript
javascript中关于&amp;&amp; 和 || 表达式的小技巧分享
2015/04/10 Javascript
JavaScript中操作字符串小结
2015/05/04 Javascript
AngularJs中route的使用方法和配置
2016/02/04 Javascript
javascript使用 concat 方法对数组进行合并的方法
2016/09/08 Javascript
jquery点击展示与隐藏更多内容
2016/12/03 Javascript
elementui的默认样式修改方法
2018/02/23 Javascript
Angular 5.x 学习笔记之Router(路由)应用
2018/04/08 Javascript
浅谈Angular7 项目开发总结
2018/12/19 Javascript
Node.js API详解之 timer模块用法实例分析
2020/05/07 Javascript
VUE实时监听元素距离顶部高度的操作
2020/07/29 Javascript
Python实现检测服务器是否可以ping通的2种方法
2015/01/01 Python
python实现两个dict合并与计算操作示例
2019/07/01 Python
Python图像处理库PIL的ImageGrab模块介绍详解
2020/02/26 Python
python opencv把一张图片嵌入(叠加)到另一张图片上的实现代码
2020/06/11 Python
用HTML5.0制作网页的教程
2010/05/30 HTML / CSS
HTML5之SVG 2D入门3—文本与图像及渲染文本介绍
2013/01/30 HTML / CSS
巴西最大的体育用品商城:Netshoes巴西
2016/11/29 全球购物
德国价格合理的品牌商品购物网站:averdo
2019/03/21 全球购物
泰国第一在线超市:Tops
2021/02/13 全球购物
经典毕业生求职信
2014/07/12 职场文书
运动员获奖感言
2014/08/15 职场文书
法律进社区活动总结
2015/05/07 职场文书
交通事故被告答辩状
2015/05/22 职场文书
python基础之停用词过滤详解
2021/04/21 Python
让文件路径提取变得更简单的Python Path库
2021/05/27 Python