在Array物件中有給定的函數可以刪除數組中指定的元素,雖然非常好用,但是總感覺看不到摸不著的比較彆扭,下面就分享一個自訂的刪除數組指定索引值元素的函數,希望給大家一個全新的思路。
程式碼實例如下:
var array=[]; array[0]="脚本之家一"; array[1]="脚本之家二"; array[2]="脚本之家三"; array[3]="脚本之家四"; array[4]="脚本之家五"; 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刪除陣列指定元素
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; }