首頁 > 軟體

JS中徹底刪除JSON物件組成的陣列中的元素

2020-09-22 12:00:48

在 JS 中,對於某個由 JSON 物件組成的陣列,例如:

var test = [{ "a": "1", "b": "2" }, { "a": "3", "b": "4" }, { "a": "5", "b": "6" }];

如果我們想要刪除其中的第二個json物件,應該怎麼做呢?其實方法和運算元組完全相同。

在最開始的時候嘗試使用了 delete 運運算元,但在查詢陣列長度的時候發現其實這種方法並不是徹底刪除元素,而是刪除它的值,但仍會保留空間。

var test = [{ "a": "1", "b": "2" }, { "a": "3", "b": "4" }, { "a": "5", "b": "6" }];
test.length  //輸出為 3
delete test[1];
test.length  //輸出仍為 3

查詢運運算元 delete 我們知道它只是將該值置為 undefined,而不會影響陣列長度,即將其變為稀疏陣列(《JS權威指南》7.5節)。

瞭解及此,也許想著可以將刪除點之後的元素各往前移動1個單位,實現徹底剔除該元素,但在JS方法中我們可以查到一種更加簡便的方式:splice() 方法

var test = [{ "a": "1", "b": "2" }, { "a": "3", "b": "4" }, { "a": "5", "b": "6" }];
test.length  //輸出為 3
test.splice(1, 1);
test.length  //輸出為 2

刪除後 test.length 變為 2,這正是我們想要的結果。

JavaScript splice() 方法

陣列中新增新元素:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>js陣列新增元素_it145.com</title>
</head>
<body>

<p id="demo">點選按鈕向陣列新增元素。</p>
<button onclick="myFunction()">點我</button>
<script>
function myFunction(){
	var fruits = ["Banana", "Orange", "Apple", "Mango"];
	fruits.splice(2,0,"Lemon","Kiwi");
	var x=document.getElementById("demo");
	x.innerHTML=fruits;
}
</script>

</body>
</html>

splice定義和用法

splice() 方法用於新增或刪除陣列中的元素。

注意:這種方法會改變原始陣列。

返回值

如果僅刪除一個元素,則返回一個元素的陣列。 如果未刪除任何元素,則返回空陣列。

語法

array.splice(index,howmany,item1,.....,itemX)

引數 Values

引數 描述
index 必需。規定從何處新增/刪除元素。
該引數是開始插入和(或)刪除的陣列元素的下標,必須是數位。
howmany 可選。規定應該刪除多少元素。必須是數位,但可以是 "0"。
如果未規定此引數,則刪除從 index 開始到原陣列結尾的所有元素。
item1, ..., itemX 可選。要新增到陣列的新元素

返回值

Type 描述
Array 如果從 arrayObject 中刪除了元素,則返回的是含有被刪除的元素的陣列。

更多範例

範例

移除陣列的第三個元素,並在陣列第三個位置新增新元素:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>it145.com</title>
</head>
<body>

<p id="demo">點選按鈕新增和刪除元素。</p>
<button onclick="myFunction()">點我</button>
<script>
function myFunction(){
	var fruits = ["Banana", "Orange", "Apple", "Mango"];
	fruits.splice(2,1,"Lemon","Kiwi");
	var x=document.getElementById("demo");
	x.innerHTML=fruits;
}
</script>

</body>
</html>

範例
從第三個位置開始刪除陣列後的兩個元素:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>it145.com</title>
</head>
<body>

<p id="demo">點選按鈕刪除陣列中的兩個元素。</p>
<button onclick="myFunction()">點我</button>
<script>
function myFunction(){
	var fruits = ["Banana", "Orange", "Apple", "Mango"];
	fruits.splice(2,2);
	var x=document.getElementById("demo");
	x.innerHTML=fruits;
}
</script>
	
</body>
</html>

到此這篇關於JS中徹底刪除JSON物件組成的陣列中的元素的文章就介紹到這了,更多相關JS刪除JSON元素內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com