JS刪除陣列裡的某個元素方法

大雄45發表於2022-03-13
導讀 JS刪除陣列裡的某個元素這個大家經常遇到的經典問題整理了在各種情況下的函式寫法以及遇到問題的分析,以下是全部內容

JS刪除陣列裡的某個元素方法JS刪除陣列裡的某個元素方法

刪除陣列指定的某個元素

js刪除陣列中某一項或幾項的幾種方法

首先可以給JS的陣列物件定義一個函式,用於查詢指定的元素在陣列中的位置,即索引,程式碼為:

Array.prototype.indexOf = function(val) { 
for (var i = 0; i < this.length; i++) { 
if (this[i] == val) return i; 
} 
return -1; 
};

然後使用通過得到這個元素的索引,使用js陣列自己固有的函式去刪除這個元素:

程式碼為:

Array.prototype.remove = function(val) { 
var index = this.indexOf(val); 
if (index > -1) { 
this.splice(index, 1); 
} 
};

這樣就構造了這樣一個函式,比如我有有一個陣列:

var emp = ['abs','dsf','sdf','fd']

假如我們要刪除其中的 'fd' ,就可以使用:

emp.remove('fd');
刪除的陣列的某一項

splice(index,len,[item]) 註釋:該方法會改變原始陣列。

splice有3個引數,它也可以用來替換/刪除/新增陣列內某一個或者幾個值

index:陣列開始下標 len: 替換/刪除的長度 item:替換的值,刪除操作的話 item為空

如: arr = ['a','b','c','d']

刪除
//刪除起始下標為1,長度為1的一個值(len設定1,如果為0,則陣列不變) 
var arr = ['a','b','c','d']; 
arr.splice(1,1); 
console.log(arr); 
//['a','c','d']; 
  
//刪除起始下標為1,長度為2的一個值(len設定2) 
var arr2 = ['a','b','c','d'] 
arr2.splice(1,2); 
console.log(arr2); 
//['a','d']
替換
//替換起始下標為1,長度為1的一個值為‘ttt',len設定的1 
var arr = ['a','b','c','d']; 
arr.splice(1,1,'ttt'); 
console.log(arr); 
//['a','ttt','c','d'] 
var arr2 = ['a','b','c','d']; 
arr2.splice(1,2,'ttt'); 
console.log(arr2); 
//['a','ttt','d'] 替換起始下標為1,長度為2的兩個值為‘ttt',len設定的1
新增 ---- len設定為0,item為新增的值
var arr = ['a','b','c','d']; 
arr.splice(1,0,'ttt'); 
console.log(arr); 
//['a','ttt','b','c','d'] 表示在下標為1處新增一項'ttt'

delete方法刪除掉陣列中的元素後,會把該下標出的值置為undefined,陣列的長度不會變

var arr = ['a','b','c','d']; 
delete arr[1]; 
arr; 
//["a", undefined × 1, "c", "d"] 中間出現兩個逗號,陣列長度不變,有一項為undefined

原文來自:

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69955379/viewspace-2865488/,如需轉載,請註明出處,否則將追究法律責任。

相關文章