來源: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
|
感謝一下腳本之家。