js 刪除 數組中某個元素(轉載)

來源:https://www.jb51.net/article/134312.htmhtml

js刪除數組中某一項或幾項的幾種方法 https://www.jb51.net/article/154737.htm數組

首先能夠給JS的數組對象定義一個函數,用於查找指定的元素在數組中的位置,即索引,代碼爲:函數

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

而後使用經過獲得這個元素的索引,使用js數組本身固有的函數去刪除這個元素:this

代碼爲:spa

?
1
2
3
4
5
6
Array.prototype.remove = function(val) {
var index = this.indexOf(val);
if (index > -1) {
this.splice(index, 1);
}
};

這樣就構造了這樣一個函數,好比我有有一個數組:.net

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

假如咱們要刪除其中的 'fd' ,就能夠使用:prototype

?
1
emp.remove('fd');

刪除的數組的某一項code

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

splice有3個參數,它也能夠用來替換/刪除/添加數組內某一個或者幾個值對象

index:數組開始下標 len: 替換/刪除的長度 item:替換的值,刪除操做的話 item爲空

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

刪除

?
1
2
3
4
5
6
7
8
9
10
11
12
//刪除起始下標爲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
2
3
4
5
6
7
8
9
10
11
//替換起始下標爲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爲添加的值

?
1
2
3
4
var arr = ['a','b','c','d'];
arr.splice(1,0,'ttt');
console.log(arr); 
//['a','ttt','b','c','d'] 表示在下標爲1處添加一項'ttt'< span style = "font-size:14px;font-family:Arial, Helvetica, sans-serif;background-color:rgb(255,255,255);" > </ span >

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

?
1
2
3
4
var arr = ['a','b','c','d'];
delete arr[1];
arr;
//["a", undefined × 1, "c", "d"] 中間出現兩個逗號,數組長度不變,有一項爲undefined

 

感謝一下腳本之家。

相關文章
相關標籤/搜索