js中數組元素的刪除

    今天在寫代碼的過程中,javascript的數組,想要從一個數組中將指定的元素刪除,剛開始想的是直接將該元素直接等於null,但是這樣在數組中並沒有移除元素,也就是說數組長度沒有改變,後來就想到了以下方法:

 

  1. /*  
  2.  *  方法:Array.remove(dx)  
  3.  *  功能:根據元素值刪除數組元素.  
  4.  *  參數:元素值  
  5.  *  返回:在原數組上修改數組  
  6.  */ 
  7. Array.prototype.indexOf = function (val) {  
  8.     for (var i = 0; i < this.length; i++) {  
  9.         if (this[i] == val) {  
  10.             return i;  
  11.         }  
  12.     }  
  13.     return -1;  
  14. };  
  15.  
  16. Array.prototype.removevalue = function (val) {  
  17.     var index = this.indexOf(val);  
  18.     if (index > -1) {  
  19.         this.splice(index, 1);  
  20.     }  
  21. };  
  22.  
  23.  
  24. /*  
  25.  *  方法:Array.remove(dx)  
  26.  *  功能:根據元素位置值刪除數組元素.  
  27.  *  參數:元素值  
  28.  *  返回:在原數組上修改數組  
  29.  */ 
  30. Array.prototype.remove = function (dx) {  
  31.     if (isNaN(dx) || dx > this.length) {  
  32.         return false;  
  33.     }  
  34.     for (var i = 0, n = 0; i < this.length; i++) {  
  35.         if (this[i] != this[dx]) {  
  36.             this[n++] = this[i];  
  37.         }  
  38.     }  
  39.     this.length -= 1;  
  40. }; 

方法二:

 

  1. function remove(index){    
  2.     return arr.slice(0,index).concat(arr.slice(index+1,arr.length))    

其中第二種方法的效率要高於第一種方法。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章