大二接觸JavaScript初期,學習函數中有一道題:
定義一個2個參數的函數。第1個參數是一個數組,第2個參數是需要刪除的元素。函數功能,在第1個實參數組中查找第2個實參提供的值,找到則刪除該元素(有幾個刪除幾個),如果刪除的元素不是最后一個元素,需要把后邊的元素依次向前移動。輸出刪除前后形參數組和實參數組中的所有元素。實參數組【3,78,34,123,4,5,66,34,55】,刪除34。
在規定的數組里的查找與刪除,有點類似於C語言中的指針。
1 <!DOCTYPE html> 2 <html> 3 <head> 4 5 <title>測試</title> 6 <script> 7 function delArr(arr,x){ 8 var i=arr.length; 9 while(i--){ 10 if(arr[i]==x){ 11 arr.splice(i,1); 12 return arr; 13 } 14 } 15 } 16 var arr=[3,78,34,123,4,5,66,34,55]; 17 alert(arr); 18 alert(delArr(arr,34)); 19 20 21 </script> 22 </head> 23 24 <body> 25 26 </body> 27 28 </html>
js splice()
定義和用法
splice() 方法向/從數組中添加/刪除項目,然后返回被刪除的項目。
注釋:該方法會改變原始數組。
在javascript中splice()方法有如下3種方式:
刪除——可以刪除任意數量的項,只需要指定2個參數:要刪除的第一項的位置和要刪除項的項數。
例如,splice(0,2) 會刪除數組中的前兩項。
插入——可以向指定位置插入任意數量的項,只需要提供3個參數:插入起始位置、0(要刪除的項數)和要插入的項。 如果要插入多個項,可以再傳入第四、第五,一直任意多個項。
例如,splice(2,0,”red”,”green”) 會從位置2開始插入字符串“red”和”green”。
替換——即刪除和插入數量相等項數的綜合應用,可以指向指定位置插入任意數量的項,且同時刪除任意數量的項,只需要指定3個指定參數:起始位置、要刪除的項數和要插入的任意數量項。 插入的項數是不必與刪除的項數相等。
提示和注釋
注釋:請注意,splice() 方法與 slice() 方法的作用是不同的,splice() 方法會直接對數組進行修改。
舉例:
1 <script> 2 var colors = ["red", "green", "blue"]; 3 var removed = colors.splice(0,1); //刪除第一項 4 alert(colors); //green,blue 5 alert(removed); //red,返回數組中值包含一項 6 7 removed = colors.splice(1, 0, "yellow", "orange"); //從位置1開始插入兩項 8 alert(colors); //green,yellow,organge,blue 9 alert(removed); //返回的是一個空數組 10 11 removed = colors.splice(1, 1, "red", "purple"); //插入兩項,刪除一項 12 alert(colors); //green,red,purple,orange,blue 13 alert(remove); //yellow, 返回的數組中只包含一項 14 </script>
參考來源:http://www.cnblogs.com/pumushan/p/5507862.html
