溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

JavaScript如何刪除對象的某個(gè)屬性

發(fā)布時(shí)間:2021-06-26 10:28:52 來源:億速云 閱讀:268 作者:chen 欄目:web開發(fā)

這篇文章主要介紹“JavaScript如何刪除對象的某個(gè)屬性”,在日常操作中,相信很多人在JavaScript如何刪除對象的某個(gè)屬性問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”JavaScript如何刪除對象的某個(gè)屬性”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!

1. delete

delete是刪除對象的屬性沒有任何剩菜,剩下的唯一真正的方法,但它的工作比其“替代”設(shè)置慢100倍 object[key] =  undefined

var myObject = {     "ircEvent": "PRIVMSG",     "method": "newURI",     "regex": "^http://.*" }; delete myObject.regex;  console.log(myObject);

delete 操作符會(huì)從某個(gè)對象上移除指定屬性。成功刪除的時(shí)候回返回 true,否則返回 false。但是,以下情況需要重點(diǎn)考慮:

如果你試圖刪除的屬性不存在,那么delete將不會(huì)起任何作用,但仍會(huì)返回true

如果對象的原型鏈上有一個(gè)與待刪除屬性同名的屬性,那么刪除屬性之后,對象會(huì)使用原型鏈上的那個(gè)屬性(也就是說,delete操作只會(huì)在自身的屬性上起作用)

任何使用 var 聲明的屬性不能從全局作用域或函數(shù)的作用域中刪除。

這樣的話,delete操作不能刪除任何在全局作用域中的函數(shù)(無論這個(gè)函數(shù)是來自于函數(shù)聲明或函數(shù)表達(dá)式)

除了在全局作用域中的函數(shù)不能被刪除,在對象(object)中的函數(shù)是能夠用delete操作刪除的。

任何用let或const聲明的屬性不能夠從它被聲明的作用域中刪除。

不可設(shè)置的(Non-configurable)屬性不能被移除。這意味著像Math, Array,  Object內(nèi)置對象的屬性以及使用Object.defineProperty()方法設(shè)置為不可設(shè)置的屬性不能被刪除。

2.  obj.field = undefined;

這個(gè)選擇不是這個(gè)問題的正確答案!但是,如果你小心使用它,你可以大大加快一些算法。如果您delete在循環(huán)中使用并且在性能方面存在問題,請閱讀詳細(xì)解釋

var obj = {     field: 1      }; obj.field = undefined;

3. 數(shù)組中使用delete

在數(shù)組中,與普通的舊對象不同,使用delete在表單中留下垃圾,null在數(shù)組中創(chuàng)建一個(gè)“洞”, 而且length不變。

var array = [1, 2, 3, 4]; delete array[2]; /* Expected result --> [1, 2, 4]  * Actual result   --> [1, 2, null, 4]  */

4. 數(shù)組中使用splice

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

index: 必需。整數(shù),規(guī)定添加/刪除項(xiàng)目的位置,使用負(fù)數(shù)可從數(shù)組結(jié)

尾處規(guī)定位置。

howmany: 必需。要?jiǎng)h除的項(xiàng)目數(shù)量。如果設(shè)置為 0,則不會(huì)刪除項(xiàng)目。

item1: 可選。向數(shù)組添加的新項(xiàng)目。

var arr = new Array(6) arr[0] = "George" arr[1] = "John" arr[2] = "Thomas" arr[3] = "James" arr[4] = "Adrew" arr[5] = "Martin"  document.write(arr + "<br />") arr.splice(2,0,"William") document.write(arr + "<br />") /* *George,John,Thomas,James,Adrew,Martin *George,John,William,Thomas,James,Adrew,Martin */

到此,關(guān)于“JavaScript如何刪除對象的某個(gè)屬性”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請繼續(xù)關(guān)注億速云網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI