收集的一些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 相关文章推荐
location.href 在IE6中不跳转的解决方法与推荐使用代码
Jul 08 Javascript
JS 仿腾讯发表微博的效果代码
Dec 25 Javascript
使用javascript实现json数据以csv格式下载
Jan 09 Javascript
jQuery仿淘宝网产品品牌隐藏与显示效果
Sep 01 Javascript
JavaScript实现倒计时代码段Item1(非常实用)
Nov 03 Javascript
jQuery实现摸拟alert提示框
May 22 Javascript
EasyUI Pagination 分页的两种做法小结
Jul 09 Javascript
js实现音乐播放控制条
Sep 09 Javascript
浅谈React前后端同构防止重复渲染
Jan 05 Javascript
微信小程序实现YDUI的ScrollNav组件
Feb 02 Javascript
vuex2中使用mapGetters/mapActions报错的解决方法
Oct 20 Javascript
基于element-ui对话框el-dialog初始化的校验问题解决
Sep 11 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 sybase_fetch_array使用方法
2014/04/15 PHP
PHP实现将视频转成MP4并获取视频预览图的方法
2015/03/12 PHP
smarty高级特性之过滤器的使用方法
2015/12/25 PHP
PHP中ID设置自增后不连续的原因分析及解决办法
2016/08/21 PHP
深入浅析PHP的session反序列化漏洞问题
2017/06/15 PHP
PHP实现基于栈的后缀表达式求值功能
2017/11/10 PHP
php微信开发之谷歌测距
2018/06/14 PHP
一个很酷的拖动层的js类,兼容IE及Firefox
2009/06/23 Javascript
js监听表单value的修改同步问题,跨浏览器支持
2009/12/31 Javascript
JavaScript Event学习第四章 传统的事件注册模型
2010/02/07 Javascript
JavaScript 对象链式操作测试代码
2010/04/25 Javascript
IE的fireEvent方法概述及应用
2013/02/22 Javascript
js拖动div 当鼠标移动时整个div也相应的移动
2013/11/21 Javascript
jquery控制背景音乐开关与自动播放提示音的方法
2015/02/06 Javascript
js实现刷新iframe的方法汇总
2015/04/27 Javascript
javascript页面倒计时实例
2015/07/25 Javascript
jquery-tips悬浮提示插件分享
2015/07/31 Javascript
学习javascript面向对象 理解javascript对象
2016/01/04 Javascript
jquery实现垂直和水平菜单导航栏
2020/08/27 Javascript
Web纯前端“旭日图”实现元素周期表
2017/03/10 Javascript
axios发送post请求,提交图片类型表单数据方法
2018/03/16 Javascript
快速解决select2在bootstrap模态框中下拉框隐藏的问题
2018/08/10 Javascript
Vue高版本中一些新特性的使用详解
2018/09/25 Javascript
详解Puppeteer前端自动化测试实践
2019/02/21 Javascript
vue-devtools的安装和使用步骤详解
2019/10/17 Javascript
python实现搜索本地文件信息写入文件的方法
2016/02/22 Python
Python SQLite3数据库日期与时间常见函数用法分析
2017/08/14 Python
对python_discover方法遍历所有执行的用例详解
2019/02/13 Python
python 将字符串中的数字相加求和的实现
2019/07/18 Python
Django ORM 常用字段与不常用字段汇总
2019/08/09 Python
python批量修改交换机密码的示例
2020/09/22 Python
python 进程池pool使用详解
2020/10/15 Python
初三物理教学反思
2014/01/21 职场文书
汽车销售助理岗位职责
2015/04/14 职场文书
职场领导同事生日简短祝福语
2019/08/06 职场文书
Github 使用python对copilot做些简单使用测试
2022/04/14 Python