当前位置: 首页 > 图文教程 > 网络编程 > Javascript > 在JS中定义数组删除方法

Javascript
JavaScript 基础问答一
CSS JavaScript 实现菜单功能 改进版
JavaScript 图片切割效果(放大镜)
JavaScript 拖放效果代码
漂亮的js tab图片轮换效果代码(可自定义的幻灯片和图片缓冲切换)
鼠标滑过 放大显示效果的列表
JS 相册效果 自动播放[本地整合]
仿CSDN 右下角悬挂的浮动层效果
右下角广告(点击广告后出现关闭按钮可关闭)
javascript this用法小结
JavaScript 绘图代码
JavaScript CSS菜单功能 改进版
javascript jQuery插件练习
jQuery 浮动广告实现代码
jQuery 位置插件
jquery 插件之仿“卓越亚马逊”首页弹出菜单效果
jquery 图片预加载 自动等比例缩放插件
JavaScript 仿关机效果的图片层
javascript 对表格的行和列都能加亮显示
JavaScript Select和Option列表元素上下左右移动

Javascript 中的 在JS中定义数组删除方法


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-08-10   浏览: 469 ::
收藏到网摘: n/a



  我们知道,在IE5或更低的版本中,JavaScript的Array(数组)对象并未提供现成的删除数组元素的方法。在IE5.5+的版本中,虽然有splice方法,但是并不是删除某一项(或几项),而仅仅是将某一项(或几项)的值清除,也就是说该项仍然存在,数组的长度并没有改变。

  事实上,我们可以自己为数组增加一个删除方法(注意,这里指的是将数组的某一项真正的从数组成员中移除)。或许你会想到用循环来为数组重新赋值,这样做当然可以,但效率很低。

  下面我们介绍利用Array对象的两个方法slice、concat来自定义删除数组的方法。

  具体代码如下,请注意里面的注释。

-------------------------------------------------------------- <script language=javascript> Array.prototype.del=function(n) { //n表示第几项,从0开始算起。 //prototype为对象原型,注意这里为对象增加自定义方法的方法。 if(n<0) //如果n<0,则不进行任何操作。 return this; else return this.slice(0,n).concat(this.slice(n+1,this.length)); /* concat方法:返回一个新数组,这个新数组是由两个或更多数组组合而成的。       这里就是返回this.slice(0,n)/this.slice(n+1,this.length)       组成的新数组,这中间,刚好少了第n项。 slice方法: 返回一个数组的一段,两个参数,分别指定开始和结束的位置。 */ } //我们来试一试这个自己增加的方法 var test=new Array(0,1,2,3,4,5); test=test.del(3); //从0算起,这里也就是删除第4项。 alert(test); </script> ------------------------------------------------------------------------------   这样,仅仅灵活运用了Array对象的两个方法,就实现了我们的要求。