基于JavaScript实现移除(删除)数组中指定元素
内容摘要
在Array对象中有给定的函数可以删除数组中指定的元素,虽然非常好用,但是总感觉看不到摸不着的比较别扭,下面就分享一个自定义的删除数组指定索引值元素的函数,希望给大家一个全
文章正文
在Array对象中有给定的函数可以删除数组中指定的元素,虽然非常好用,但是总感觉看不到摸不着的比较别扭,下面就分享一个自定义的删除数组指定索引值元素的函数,希望给大家一个全新的思路。
代码实例如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | var array =[]; array [0]= "phpstudy一" ; array [1]= "phpstudy二" ; array [2]= "phpstudy三" ; array [3]= "phpstudy四" ; array [4]= "phpstudy五" ; function remove( array ,index) { if (index<=( array .length-1)) { for ( var i=index;i< array .length;i++) { array [i]= array [i+1]; } } else { throw new Error( '超出最大索引!' ); } array .length= array .length-1; return array ; } document.write(remove( array ,2)); |
以上代码中,声明一个remove()函数,此函数具有两个参数,第一个参数是数组对象,第二个参数是要删除数组元素的索引值,所以上面的代码能够删除数组中的第三个元素,并输出删除元素户的数组。实现的原理也非常的简单,做一下简单的介绍:
remove()函数首先判断传入的索引值是否大约数组的最大索引值array.length-1,如果大于则抛出错误,否则的话则将使用for循环从索引值i开始进行遍历,将索引值为i的数组值设置为低i+1项的,依次类推,原理大体如此,如有任何问题可以跟帖留言。
ps:js删除数组指定元素
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | var a = new Array( "a" , "b" , "cc" , "d3" ); //删除a数组的cc元素 //jQuery.inArray()函数用于在数组中搜索指定的值,并返回其索引值。如果数组中不存在该值,则返回 -1。 该函数属于全局jQuery对象。 jquery 1.2中添加的该静态方法 var index = $.inArray( "cc" ,a); if (index>=0){ //arrayObject.splice(index,howmany,item1,.....,itemX) //参数 描述 //index 必需。整数,规定添加/删除项目的位置,使用负数可从数组结尾处规定位置。 //howmany 必需。要删除的项目数量。如果设置为 0,则不会删除项目。 //item1, ..., itemX 可选。向数组添加的新项目。 a.splice(index,1); alert(a.toString()); } else { alert( "error" ); return false; } |
代码注释