在 JS 中,對(duì)于某個(gè)由 JSON 對(duì)象組成的數(shù)組,例如:
var test = [{ "a": "1", "b": "2" }, { "a": "3", "b": "4" }, { "a": "5", "b": "6" }];
如果我們想要?jiǎng)h除其中的第二個(gè)json對(duì)象,應(yīng)該怎么做呢?其實(shí)方法和操作數(shù)組完全相同。
?
在最開始的時(shí)候嘗試使用了 delete 運(yùn)算符,但在查詢數(shù)組長(zhǎng)度的時(shí)候發(fā)現(xiàn)其實(shí)這種方法并不是徹底刪除元素,而是刪除它的值,但仍會(huì)保留空間。
var test = [{ "a": "1", "b": "2" }, { "a": "3", "b": "4" }, { "a": "5", "b": "6" }]; test.length //輸出為 3 delete test[1]; test.length //輸出仍為 3
查詢運(yùn)算符 delete 我們知道它只是將該值置為 undefined,而不會(huì)影響數(shù)組長(zhǎng)度,即將其變?yōu)橄∈钄?shù)組(《JS權(quán)威指南》7.5節(jié))。
?
了解及此,也許想著可以將刪除點(diǎn)之后的元素各往前移動(dòng)1個(gè)單位,實(shí)現(xiàn)徹底剔除該元素,但在JS方法中我們可以查到一種更加簡(jiǎn)便的方式: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 變?yōu)?2,這正是我們想要的結(jié)果。
原文地址:https://blog.csdn.net/WI_232995/article/details/77776433