這篇文章給大家分享的是有關(guān)JavaScript中如何比較兩個(gè)對(duì)象是否相等的內(nèi)容。小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧。
青白江ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書未來(lái)市場(chǎng)廣闊!成為創(chuàng)新互聯(lián)公司的ssl證書銷售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18982081108(備注:SSL證書合作)期待與您的合作!
這是我在一次面試中,被面試官所提問(wèn)的一道題
在這次面試題中
相等:指的是對(duì)象的屬性個(gè)數(shù)值相等
有這樣兩個(gè)obj
let obj1 = { name:'李德華', age:18, price:NaN } let obj2 = { name:'張德華', age:18, price:NaN }
我能想到的一種方案
function compare(obj1,obj2){ if(Object.keys(obj1).length != Object.keys(obj2).length){ return false }else{ for(key in obj1){ if(obj2.hasOwnProperty(key)){ if( !Object.is(obj1[key],obj2[key])){ return false; } }else{ return false } } return true } }
由于obj沒(méi)有l(wèi)ength,我只能通過(guò)Object.keys()轉(zhuǎn)化成數(shù)組
進(jìn)入第二步,對(duì)象中的屬性在另一個(gè)obj中是否存在。此處使用了Object.hasOwnProperty() 僅對(duì)該對(duì)象中的屬性進(jìn)行對(duì)比(避免obj繼承了父級(jí)的屬性)
承載第二步的基礎(chǔ)對(duì)屬性值進(jìn)行比對(duì)。ES6中Object.is()來(lái)避免出現(xiàn)NaN不等于自身的問(wèn)題
或者使用 Underscore.js中的_.isEqual
感謝各位的閱讀!關(guān)于JavaScript中如何比較兩個(gè)對(duì)象是否相等就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!
網(wǎng)站欄目:JavaScript中如何比較兩個(gè)對(duì)象是否相等
標(biāo)題鏈接:http://aaarwkj.com/article6/ijheog.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護(hù)、移動(dòng)網(wǎng)站建設(shè)、用戶體驗(yàn)、電子商務(wù)、搜索引擎優(yōu)化、營(yíng)銷型網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)