欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

查找JS對(duì)象中是否包含某個(gè)變量的6種方法總結(jié)

 更新時(shí)間:2024年08月20日 10:19:35   作者:還是大劍師蘭特  
在JavaScript中,我們可以通過(guò)多種方法來(lái)判斷一個(gè)數(shù)組中是否包含某個(gè)特定的值,這篇文章主要給大家介紹了關(guān)于如何查找JS對(duì)象中是否包含某個(gè)變量的6種方法,需要的朋友可以參考下

在JavaScript中,檢查一個(gè)對(duì)象是否包含某個(gè)屬性(變量)可以通過(guò)幾種不同的方法實(shí)現(xiàn)。下面是一些常用的方法:

方法一:使用 in 運(yùn)算符

in 運(yùn)算符可以用來(lái)檢測(cè)一個(gè)對(duì)象是否具有指定的屬性名(無(wú)論該屬性是直接定義在對(duì)象上還是繼承來(lái)的)。

const obj = { a: 1, b: 2 };

console.log('a' in obj); // true
console.log('c' in obj); // false

方法二:使用 hasOwnProperty() 方法

hasOwnProperty() 方法用來(lái)檢測(cè)一個(gè)對(duì)象是否直接具有指定的屬性名,不考慮繼承鏈上的屬性。

const obj = { a: 1, b: 2 };

console.log(obj.hasOwnProperty('a')); // true
console.log(obj.hasOwnProperty('c')); // false

方法三:使用 Object.prototype.hasOwnProperty.call()

當(dāng)需要檢查一個(gè)繼承來(lái)的屬性是否存在時(shí),或者當(dāng) this 上下文不正確時(shí),可以使用 call() 或 apply() 方法來(lái)調(diào)用 hasOwnProperty

const obj = Object.create({ c: 3 });
obj.a = 1;
obj.b = 2;

console.log(Object.prototype.hasOwnProperty.call(obj, 'a')); // true
console.log(Object.prototype.hasOwnProperty.call(obj, 'c')); // false

方法四:使用 Reflect.has()

Reflect.has() 方法類似于 in 運(yùn)算符,但它返回一個(gè)布爾值指示對(duì)象是否有給定的屬性鍵。

const obj = { a: 1, b: 2 };

console.log(Reflect.has(obj, 'a')); // true
console.log(Reflect.has(obj, 'c')); // false

方法五:使用 Object.keys() 或 Object.getOwnPropertyNames()

如果你只需要檢查一個(gè)或幾個(gè)屬性,并且不關(guān)心性能,你可以使用 Object.keys() 或 Object.getOwnPropertyNames() 來(lái)獲取所有屬性名,然后檢查這些數(shù)組中是否包含你想要的屬性名。

const obj = { a: 1, b: 2 };

const keys = Object.keys(obj);
console.log(keys.includes('a')); // true
console.log(keys.includes('c')); // false

const ownKeys = Object.getOwnPropertyNames(obj);
console.log(ownKeys.includes('a')); // true
console.log(ownKeys.includes('c')); // false

方法六:使用 Object.getOwnPropertyDescriptor()

如果需要檢查一個(gè)屬性是否存在并且獲取它的描述符,可以使用 Object.getOwnPropertyDescriptor()。

const obj = { a: 1, b: 2 };

const desc = Object.getOwnPropertyDescriptor(obj, 'a');
console.log(desc !== undefined); // true

const desc2 = Object.getOwnPropertyDescriptor(obj, 'c');
console.log(desc2 === undefined); // true

總結(jié)

  • 使用 in 運(yùn)算符和 Reflect.has() 可以檢測(cè)繼承來(lái)的屬性。
  • 使用 hasOwnProperty() 和 Object.getOwnPropertyDescriptor() 只能檢測(cè)對(duì)象自身的屬性。
  • 使用 Object.keys() 和 Object.getOwnPropertyNames() 可以獲得所有屬性的列表,然后進(jìn)行進(jìn)一步的檢查。

根據(jù)你的具體需求選擇合適的方法。

到此這篇關(guān)于查找JS對(duì)象中是否包含某個(gè)變量的6種方法總結(jié)的文章就介紹到這了,更多相關(guān)查找JS對(duì)象包含某變量?jī)?nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • JavaScript知識(shí)點(diǎn)總結(jié)(十一)之js中的Object類詳解

    JavaScript知識(shí)點(diǎn)總結(jié)(十一)之js中的Object類詳解

    這篇文章主要介紹了JavaScript知識(shí)點(diǎn)總結(jié)(十一)之js中的Object類詳解的相關(guān)資料,需要的朋友可以參考下
    2016-05-05
  • 淺談bootstrap源碼分析之tab(選項(xiàng)卡)

    淺談bootstrap源碼分析之tab(選項(xiàng)卡)

    下面小編就為大家?guī)?lái)一篇淺談bootstrap源碼分析之tab(選項(xiàng)卡)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-06-06
  • 二行代碼解決全部網(wǎng)頁(yè)木馬

    二行代碼解決全部網(wǎng)頁(yè)木馬

    還是掛馬問(wèn)題,這段時(shí)間,我漸漸感到壓力,頭大,通過(guò)QQ或MSN加我的人越來(lái)越多,我最近自己的工作本來(lái)就忙得不亦樂(lè)乎。哎,想想,還是要抽空來(lái)來(lái)幫幫大家。
    2008-03-03
  • TypeScript實(shí)現(xiàn)單鏈表的示例代碼

    TypeScript實(shí)現(xiàn)單鏈表的示例代碼

    鏈表是一種物理存儲(chǔ)單元上非連續(xù)、非順序的存儲(chǔ)結(jié)構(gòu),本文主要介紹了TypeScript實(shí)現(xiàn)單鏈表的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-08-08
  • JavaScript實(shí)現(xiàn)簡(jiǎn)單圖片輪播效果

    JavaScript實(shí)現(xiàn)簡(jiǎn)單圖片輪播效果

    這篇文章主要介紹了JavaScript實(shí)現(xiàn)簡(jiǎn)單圖片輪播效果,點(diǎn)擊下標(biāo)切換到該圖片上,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • JS旋轉(zhuǎn)實(shí)現(xiàn)轉(zhuǎn)盤抽獎(jiǎng)效果

    JS旋轉(zhuǎn)實(shí)現(xiàn)轉(zhuǎn)盤抽獎(jiǎng)效果

    這篇文章主要為大家詳細(xì)介紹了JS旋轉(zhuǎn)實(shí)現(xiàn)轉(zhuǎn)盤抽獎(jiǎng)效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • 微信小程序?qū)崿F(xiàn)發(fā)紅包功能

    微信小程序?qū)崿F(xiàn)發(fā)紅包功能

    這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崿F(xiàn)發(fā)紅包功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-07-07
  • JavaScript手寫源碼之omit函數(shù)的實(shí)現(xiàn)

    JavaScript手寫源碼之omit函數(shù)的實(shí)現(xiàn)

    最近突然有個(gè)新的想法,想去看看前端的小庫(kù)來(lái)提升自己的編碼能力。但是又不知道怎么去證明自己是否真的看懂了,那就實(shí)現(xiàn)一個(gè)omit函數(shù)吧
    2023-02-02
  • js實(shí)現(xiàn)的二級(jí)橫向菜單條實(shí)例

    js實(shí)現(xiàn)的二級(jí)橫向菜單條實(shí)例

    這篇文章主要介紹了js實(shí)現(xiàn)的二級(jí)橫向菜單條,是非常美觀簡(jiǎn)潔的二級(jí)導(dǎo)航條效果,可實(shí)現(xiàn)針對(duì)鼠標(biāo)事件的動(dòng)態(tài)響應(yīng)及頁(yè)面樣式切換功能,簡(jiǎn)單實(shí)用,需要的朋友可以參考下
    2015-08-08
  • Bootstrap Table服務(wù)器分頁(yè)與在線編輯應(yīng)用總結(jié)

    Bootstrap Table服務(wù)器分頁(yè)與在線編輯應(yīng)用總結(jié)

    這篇文章主要介紹了Bootstrap Table服務(wù)器分頁(yè)與在線編輯應(yīng)用總結(jié) 的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2016-08-08

最新評(píng)論