收集的一些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 相关文章推荐
DOM精简教程
Oct 03 Javascript
一些相见恨晚的 JavaScript 技巧
Apr 25 Javascript
Prototype源码浅析 Enumerable部分(二)
Jan 18 Javascript
animate动画示例(泪奔的小孩)及stop和delay的使用
May 06 Javascript
Bootstrap中CSS的使用方法
Feb 17 Javascript
原生JS实现匀速图片轮播动画
Oct 18 Javascript
微信小程序使用Socket的实例
Sep 19 Javascript
vue中实现在外部调用methods的方法(推荐)
Feb 08 Javascript
vue短信验证性能优化如何写入localstorage中
Apr 25 Javascript
微信小程序chooseImage的用法(从本地相册选择图片或使用相机拍照)
Aug 22 Javascript
封装 axios+promise通用请求函数操作
Aug 11 Javascript
小程序实现左滑删除的效果的实例代码
Oct 19 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中的日期处理方法集锦
2007/01/02 PHP
php 远程图片保存到本地的函数类
2008/12/08 PHP
PHP 5.3新特性命名空间规则解析及高级功能
2010/03/11 PHP
php使用filter过滤器验证邮箱 ipv6地址 url验证
2013/12/25 PHP
php设计模式之单例模式使用示例
2014/01/20 PHP
php抽奖概率算法(刮刮卡,大转盘)
2020/04/17 PHP
ASP.NET jQuery 实例5 (显示CheckBoxList成员选中的内容)
2012/01/13 Javascript
JavaScript可否多线程? 深入理解JavaScript定时机制
2012/05/23 Javascript
jquery parent和parents的区别分析
2013/10/02 Javascript
js快速排序的实现代码
2013/12/08 Javascript
网页实时显示服务器时间和javscript自运行时钟
2014/06/09 Javascript
node.js实现快速截图
2016/08/27 Javascript
微信小程序 前端源码逻辑和工作流详解
2016/10/08 Javascript
WEB开发之注册页面验证码倒计时代码的实现
2016/12/15 Javascript
javascript容错处理代码(屏蔽js错误)
2017/01/20 Javascript
Vue resource中的GET与POST请求的实例代码
2017/07/21 Javascript
Cropper.js 实现裁剪图片并上传(PC端)
2017/08/20 Javascript
Node.js 利用cheerio制作简单的网页爬虫示例
2018/03/01 Javascript
js实现旋转的星空效果
2019/11/01 Javascript
[37:03]完美世界DOTA2联赛PWL S3 INK ICE vs GXR 第二场 12.16
2020/12/18 DOTA
python 脚本生成随机 字母 + 数字密码功能
2018/05/26 Python
python 借助numpy保存数据为csv格式的实现方法
2018/07/04 Python
python 读取文件并替换字段的实例
2018/07/12 Python
pygame实现贪吃蛇游戏(上)
2019/10/29 Python
python删除某个目录文件夹的方法
2020/05/26 Python
如何通过python检查文件是否被占用
2020/12/18 Python
Html5页面在微信端的分享的实现方法
2018/08/30 HTML / CSS
写好求职应聘自荐信的三部曲
2013/09/21 职场文书
上课玩手机检讨书
2014/02/08 职场文书
聚美优品的广告词
2014/03/14 职场文书
中学生运动会新闻稿
2014/09/24 职场文书
2014年基层党建工作总结
2014/11/11 职场文书
2014年办公室文秘工作总结
2014/12/09 职场文书
好媳妇事迹材料
2014/12/24 职场文书
2019年销售部季度工作计划3篇
2019/10/09 职场文书
MySQL之MyISAM存储引擎的非聚簇索引详解
2022/03/03 MySQL