摘要:這是我在一次面試中,被面試官所提問(wèn)的一道題在這次面試題中相等指的是對(duì)象的屬性個(gè)數(shù)值相等有這樣兩個(gè)李德華張德華我能想到的一種方案解答過(guò)程的思考由于沒(méi)有,我只能通過(guò)轉(zhuǎn)化成數(shù)組進(jìn)入第二步,對(duì)象中的屬性在另一個(gè)中是否存在。
這是我在一次面試中,被面試官所提問(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 } }解答過(guò)程的思考
由于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
祝大家在金三銀四的面試中取得滿意的結(jié)果!
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/102054.html
摘要:中,任何未處理的受檢查異常強(qiáng)制在子句中聲明。運(yùn)行時(shí)多態(tài)是面向?qū)ο笞罹璧臇|西,要實(shí)現(xiàn)運(yùn)行時(shí)多態(tài)需要方法重寫子類繼承父類并重寫父類中已 1、簡(jiǎn)述Java程序編譯和運(yùn)行的過(guò)程:答:① Java編譯程序?qū)ava源程序翻譯為JVM可執(zhí)行代碼--字節(jié)碼,創(chuàng)建完源文件之后,程序會(huì)先被編譯成 .class 文件。② 在編譯好的java程序得到.class文件后,使用命令java 運(yùn)行這個(gè) .c...
摘要:中,任何未處理的受檢查異常強(qiáng)制在子句中聲明。運(yùn)行時(shí)多態(tài)是面向?qū)ο笞罹璧臇|西,要實(shí)現(xiàn)運(yùn)行時(shí)多態(tài)需要方法重寫子類繼承父類并重寫父類中已 1、簡(jiǎn)述Java程序編譯和運(yùn)行的過(guò)程:答:① Java編譯程序?qū)ava源程序翻譯為JVM可執(zhí)行代碼--字節(jié)碼,創(chuàng)建完源文件之后,程序會(huì)先被編譯成 .class 文件。② 在編譯好的java程序得到.class文件后,使用命令java 運(yùn)行這個(gè) .c...
摘要:所以能用的地方盡量用,相等運(yùn)算符隱藏的類型轉(zhuǎn)換,會(huì)帶來(lái)一些違反直覺(jué)的結(jié)果。 這是在國(guó)外的一道面試題看到的,大家先自己想一下,在什么情況下這個(gè)判斷會(huì)成立?按正常思維想,這個(gè)是不可能成立的,但nothing is impossible,首先貼上正確答案代碼 const a = { i: 1, toString: function () { return a.i++; }...
摘要:譯者按從標(biāo)準(zhǔn),語(yǔ)法以及模塊角度來(lái)看,的發(fā)展讓人目不暇接,那么面試題也得與時(shí)俱進(jìn)。因此,手動(dòng)檢查所有依賴是不現(xiàn)實(shí)的。為,加之后返回。自從年雙十一正式上線,累計(jì)處理了億錯(cuò)誤事件,得到了金山軟件百姓網(wǎng)等眾多知名用戶的認(rèn)可。 譯者按: 從ECMAScript標(biāo)準(zhǔn),Node.js語(yǔ)法以及NPM模塊角度來(lái)看,Node.js的發(fā)展讓人目不暇接,那么面試題也得與時(shí)俱進(jìn)。 原文: Node.js In...
摘要:閉包正確的說(shuō)應(yīng)該是指一個(gè)閉包域每當(dāng)聲明了一個(gè)函數(shù)它就產(chǎn)生了一個(gè)閉包域可以解釋為每個(gè)函數(shù)都有自己的函數(shù)棧每個(gè)閉包域?qū)ο蠖加幸粋€(gè)不是屬性內(nèi)默認(rèn)有個(gè)名為的全局引用有了這個(gè)引用就可以直接調(diào)用的屬性或方法凡是在閉包域內(nèi)聲明的變量或方法外部無(wú)法直接訪問(wèn) 閉包 正確的說(shuō),應(yīng)該是指一個(gè)閉包域,每當(dāng)聲明了一個(gè)函數(shù),它就產(chǎn)生了一個(gè)閉包域(可以解釋為每個(gè)函數(shù)都有自己的函數(shù)棧),每個(gè)閉包域(Function...
閱讀 3393·2021-09-22 15:01
閱讀 524·2019-08-30 11:11
閱讀 950·2019-08-29 16:17
閱讀 1209·2019-08-29 12:23
閱讀 2023·2019-08-26 11:48
閱讀 3176·2019-08-26 11:48
閱讀 1415·2019-08-26 10:33
閱讀 1927·2019-08-26 10:30