JavaScript中清空數(shù)組的幾種方法
Array.prototype.splice()
let course = ['HTML', 'CSS', 'JavaScript'] course.splice(0) console.log(course.length) // 0
注意:此方法會(huì)影響其他引用。
let course = ['HTML', 'CSS', 'JavaScript'] let other = course course.splice(0) course // [] other // []
由于 splice() 返回一個(gè)已刪除項(xiàng)目的數(shù)組,您可以通過(guò)將結(jié)果分配給一個(gè)新變量來(lái)獲取原始數(shù)組的副本:
let foo = ['hello', 'world'] // 清空并創(chuàng)建一個(gè) foo 的副本 let bar = foo.splice(0, foo.length) console.log(foo) // [] console.log(bar) // ['hello', 'world']
將 length 設(shè)置為 0
將數(shù)組的長(zhǎng)度設(shè)置為零。
let course = ['HTML', 'CSS', 'JavaScript'] course.length = 0 console.log(course) // []
分配新的空數(shù)組
let course = ['HTML', 'CSS', 'JavaScript'] course = [] console.log(course.length) // 0
length = 0和 Array = [] 之間的差異?
在大多數(shù)情況下,將變量重新分配給空數(shù)組是更好的選擇。它比調(diào)整 length 屬性更短、更明確。
但有時(shí),你有一個(gè)數(shù)組是通過(guò)引用分配的,你想讓它們保持引用。
假如我們有一個(gè) foo 數(shù)組,我們還有一個(gè) bar 變量,我將它的值設(shè)置為 foo 數(shù)組。
let foo = ['hello', 'world'] // 添加引用 let bar = foo
如果我重新分配 foo 的值為 [] 空數(shù)組,bar 變量仍指向分配給它的原始數(shù)組。
foo = [] // bar 不受影響 console.log(bar) // ['hello', 'world']
foo = [] 將一個(gè)新的數(shù)組的引用賦值給變量,其他引用并不受影響。這意味著以前數(shù)組的內(nèi)容被引用的話將依舊存在于內(nèi)存中,這將導(dǎo)致內(nèi)存泄漏。
如果我改為 foo.length = 0,刪除數(shù)組里的所有內(nèi)容,也將影響到其他引用。
let foo = ['hello', 'world'] let bar = foo foo.length = 0 // `bar` 受影響 console.log(bar) // []
如果數(shù)組被聲明為常量,則不能將其重新分配給 []。這時(shí)我們應(yīng)該使用 lenght = 0。
const course = ['HTML', 'CSS', 'JavaScript'] course = [] // 會(huì)拋出異常:"Assignment to constant variable" // 使用 length = 0 course.length = 0
到此這篇關(guān)于JavaScript中清空數(shù)組的幾種方法的文章就介紹到這了,更多相關(guān)JavaScript清空數(shù)組內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
將Datatable轉(zhuǎn)化成json發(fā)送前臺(tái)實(shí)現(xiàn)思路
將Datatable轉(zhuǎn)化成json可以將dt序列化成json,放到前臺(tái)的隱藏控件hidBoundary中,具體的實(shí)現(xiàn)如下,有類(lèi)似需求的朋有可以參考下2013-09-09JavaScript實(shí)現(xiàn)拖拽元素對(duì)齊到網(wǎng)格(每次移動(dòng)固定距離)
最近在做一個(gè)拖拽元素的附加功能,就是對(duì)齊到網(wǎng)格,實(shí)際上就是確定好元素的初始位置,然后拖拽元素時(shí),每次移動(dòng)固定的距離。讓元素都可以在網(wǎng)格內(nèi)對(duì)齊2016-11-11詳解微信小程序(Taro)手動(dòng)埋點(diǎn)和自動(dòng)埋點(diǎn)的實(shí)現(xiàn)
這篇文章主要介紹了詳解微信小程序(Taro)手動(dòng)埋點(diǎn)和自動(dòng)埋點(diǎn)的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03利用JavaScript實(shí)現(xiàn)簡(jiǎn)單的網(wǎng)頁(yè)時(shí)鐘
這篇文章主要介紹了利用JavaScript實(shí)現(xiàn)簡(jiǎn)單的網(wǎng)頁(yè)時(shí)鐘,主要使用了js的日期對(duì)象,實(shí)現(xiàn)的時(shí)候先創(chuàng)建一個(gè)日期對(duì)象,并進(jìn)行網(wǎng)頁(yè)布局,對(duì)時(shí)間獲取之后將時(shí)間填入對(duì)應(yīng)的標(biāo)簽內(nèi)。然后使用多線程實(shí)現(xiàn)時(shí)鐘的變動(dòng),需要的朋友可以參考一下2022-02-02JavaScript實(shí)現(xiàn)搜索聯(lián)想關(guān)鍵字高亮功能
本文將詳解如何利用原生js+css+html實(shí)現(xiàn)的輸入框搜索聯(lián)想的功能,并集搜索關(guān)鍵字高亮效果,文中的示例代碼講解詳細(xì),需要的可以參考一下2022-06-06詳解webpack4升級(jí)指南以及從webpack3.x遷移
本篇文章主要介紹了詳解webpack4升級(jí)指南以及從webpack3.x遷移,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-06-06

JavaScript實(shí)現(xiàn)Iterator模式實(shí)例分析