收集的一些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实现无刷新更新数据的详细步骤 asp
Dec 26 Javascript
基于Jquery的标签智能验证实现代码
Dec 27 Javascript
IE8对JS通过属性和数组遍历解析不一样的地方探讨
May 06 Javascript
Function.prototype.call.apply结合用法分析示例
Jul 03 Javascript
js滚动条平滑移动示例代码
Mar 29 Javascript
js 实现获取name 相同的页面元素并循环遍历的方法
Feb 14 Javascript
JS对象的深度克隆方法示例
Mar 16 Javascript
Angular中实现树形结构视图实例代码
May 05 Javascript
Vue.js实现价格计算器功能
Mar 30 Javascript
ES6下子组件调用父组件的方法(推荐)
Feb 23 Javascript
vue 解决循环引用组件报错的问题
Sep 06 Javascript
layui实现下拉框三级联动
Jul 26 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
模拟OICQ的实现思路和核心程序(一)
2006/10/09 PHP
php 中英文语言转换类代码
2011/08/11 PHP
详解php设置session(过期、失效、有效期)
2015/11/12 PHP
简单实用的反馈表单无刷新提交带验证
2013/11/15 Javascript
JS中如何设置readOnly的值
2013/12/25 Javascript
chrome下img加载对height()的影响示例探讨
2014/05/26 Javascript
JavaScript前补零操作实例
2015/03/11 Javascript
el表达式 写入bootstrap表格数据页面的实例代码
2017/01/11 Javascript
如何快速上手Vuex
2017/02/14 Javascript
Angular 4 依赖注入学习教程之FactoryProvider的使用(四)
2017/06/04 Javascript
浅谈Vue2.0父子组件间事件派发机制
2018/01/08 Javascript
vue 过滤器filter实例详解
2018/03/14 Javascript
js如何找出字符串中的最长回文串
2018/06/04 Javascript
JS 中可以提升幸福度的小技巧(可以识别更多另类写法)
2018/07/28 Javascript
React中使用UEditor百度富文本的方法
2018/08/22 Javascript
微信小程序使用map组件实现路线规划功能示例
2019/01/22 Javascript
Vue + Scss 动态切换主题颜色实现换肤的示例代码
2020/04/27 Javascript
jquery+css3实现的经典弹出层效果示例
2020/05/16 jQuery
jquery插件实现轮播图效果
2020/10/19 jQuery
使用Python实现一个简单的项目监控
2015/03/31 Python
深入解读Python解析XML的几种方式
2016/02/16 Python
python如何获取服务器硬件信息
2017/05/11 Python
python 打印直角三角形,等边三角形,菱形,正方形的代码
2017/11/21 Python
python批量修改图片后缀的方法(png到jpg)
2018/10/25 Python
OpenCV搞定腾讯滑块验证码的实现代码
2019/05/18 Python
Python 正则表达式 re.match/re.search/re.sub的使用解析
2019/07/22 Python
pytorch 自定义卷积核进行卷积操作方式
2019/12/30 Python
css3实现冲击波效果的示例代码
2018/01/11 HTML / CSS
如何让IE9以下版本(ie6/7/8)认识html5元素
2013/04/01 HTML / CSS
某IT外企面试题-二分法求方程!看看大家的C++功底
2015/07/04 面试题
会议接待欢迎词
2014/01/12 职场文书
幼儿教师师德演讲稿
2014/05/06 职场文书
企业安全生产演讲稿
2014/05/09 职场文书
创业计划书之养殖业
2019/10/11 职场文书
html+css实现分层金字塔的实例
2021/06/02 HTML / CSS
Feign调用传输文件异常的解决
2021/06/24 Java/Android