清空數(shù)組
list
的數(shù)組,然后通過(guò) list = []
語(yǔ)句來(lái)清空數(shù)組。該方法簡(jiǎn)單易懂,但效率不高。實(shí)際上,這種方式是通過(guò)創(chuàng)建一個(gè)新的空數(shù)組并將其引用賦值給 list
變量來(lái)實(shí)現(xiàn)的。這就意味著舊的數(shù)組內(nèi)容并沒(méi)有真正被刪除,如果有其他變量仍然引用這個(gè)數(shù)組,那么這部分內(nèi)容將會(huì)保留在內(nèi)存中,可能導(dǎo)致內(nèi)存泄露。
在這種方法中,我們通過(guò)設(shè)置 list.length = 0
來(lái)清空數(shù)組。這里并沒(méi)有創(chuàng)建新的數(shù)組,而是直接修改了原數(shù)組的長(zhǎng)度屬性,使其變?yōu)?,從而達(dá)到清空數(shù)組的目的。這種方式更為高效,也會(huì)釋放掉原數(shù)組所占用的內(nèi)存空間。
另外一種相似的是splice()
方法
splice()
并傳入了兩個(gè)參數(shù)。第一個(gè)參數(shù) 0
是開(kāi)始刪除的元素的索引,第二個(gè)參數(shù) list.length
是刪除的元素?cái)?shù)量。這樣,splice()
方法就會(huì)從頭開(kāi)始刪除數(shù)組中的所有元素
然而,需要注意的是,如果你復(fù)制了一個(gè)數(shù)組(A 和 Copy-A),如果你用list.length = 0
清空了它的內(nèi)容,復(fù)制的數(shù)組也會(huì)隨之清空它的內(nèi)容。(splice()類(lèi)似)
foo
和 bar
,我們可以清晰地看到 foo2
和 bar2
也隨之發(fā)生了改變??偨Y(jié)來(lái)說(shuō),選擇哪種清空數(shù)組的方法應(yīng)根據(jù)具體情況和需求來(lái)定,同時(shí)也要考慮到可能對(duì)內(nèi)存的影響。