收集的一些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拥有类似Lambda表达式编程能力的方法
Sep 12 Javascript
带左右箭头图片轮播的JS代码
Dec 18 Javascript
js获取当前路径的简单示例代码
Jan 08 Javascript
jQuery 1.9.1源码分析系列(十五)动画处理之缓动动画核心Tween
Dec 03 Javascript
JS排序方法(sort,bubble,select,insert)代码汇总
Jan 30 Javascript
Js类的静态方法与实例方法区分及jQuery拓展的两种方法
Jun 03 Javascript
最佳的JavaScript错误处理实践
Jul 16 Javascript
微信小程序 wx:for的使用实例详解
Apr 27 Javascript
BootStrap Table 后台数据绑定、特殊列处理、排序功能
May 27 Javascript
js实现图片懒加载效果
Jul 17 Javascript
vue.js中created方法作用
Mar 30 Javascript
vue+vuex+axios从后台获取数据存入vuex,组件之间共享数据操作
Jul 31 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
下载文件的点击数回填
2006/10/09 PHP
php连接mysql数据库代码
2009/03/10 PHP
二招解决php乱码问题
2012/03/25 PHP
php连接mssql的一些相关经验及注意事项
2013/02/05 PHP
php实现的递归提成方案实例
2015/11/14 PHP
PHP弱类型语言中类型判断操作实例详解
2017/08/10 PHP
php框架CodeIgniter使用redis的方法分析
2018/04/13 PHP
php使用curl模拟多线程实现批处理功能示例
2019/07/25 PHP
Yii框架getter与setter方法功能与用法分析
2019/10/22 PHP
你需要知道的JavsScript可以做什么?
2007/06/29 Javascript
工作需要写的一个js拖拽组件
2011/07/28 Javascript
extjs每个组件要设置唯一的ID否则会出错
2014/06/15 Javascript
js的toUpperCase方法用法实例
2015/01/27 Javascript
jQuery通过扩展实现抖动效果的方法
2015/03/11 Javascript
AngularJS+Node.js实现在线聊天室
2015/08/28 Javascript
一波JavaScript日期判断脚本分享
2016/03/06 Javascript
基于javascript实现九九乘法表
2016/03/27 Javascript
JS模拟bootstrap下拉菜单效果实例
2016/06/17 Javascript
node.js学习之base64编码解码
2016/10/21 Javascript
浅谈JS获取元素的N种方法及其动静态讨论
2017/08/25 Javascript
详解微信小程序审核不通过的解决方法
2018/01/17 Javascript
微信小程序自定义toast的实现代码
2018/11/16 Javascript
vue-cli的build的文件夹下没有dev-server.js文件配置mock数据的方法
2019/04/17 Javascript
Vue数据绑定实例写法
2019/08/06 Javascript
[03:12]完美世界DOTA2联赛PWL DAY9集锦
2020/11/10 DOTA
python使用Matplotlib画条形图
2020/03/25 Python
Python WEB应用部署的实现方法
2019/01/02 Python
10款最好的Python开发编辑器
2019/07/03 Python
python输出第n个默尼森数的实现示例
2020/03/08 Python
HTML5本地存储之Database Storage应用介绍
2013/01/06 HTML / CSS
北京捷通华声语音技术有限公司Java软件工程师笔试题
2012/04/10 面试题
《锄禾》教学反思
2014/04/08 职场文书
《天游峰的扫路人》教学反思
2014/04/25 职场文书
初中毕业典礼演讲稿
2014/09/09 职场文书
物业工程部主管岗位职责
2015/04/16 职场文书
如何用PHP实现分布算法之一致性哈希算法
2021/05/26 PHP