JavaScript通過遍歷所有屬性判斷兩個Object對象是否相等

function isEquivalent(a, b) {

??????????// Create arrays of property names

? ? ????var aProps = Object.getOwnPropertyNames(a);

? ? ????var bProps = Object.getOwnPropertyNames(b);

? ? ????// If number of properties is different,

? ? ????// objects are not equivalent

? ? ? ??if (aProps.length != bProps.length) {

? ? ? ? ????????return false;

? ? ? ? ? }

? ? ????for (var i = 0; i < aProps.length; i++) {

? ? ? ????? var propName = aProps[i];

? ? ? ? ? ? ? // If values of same property are not equal,

? ? ? ? ? ? ? ?// objects are not equivalent

? ? ? ????????? if (a[propName] !== b[propName]) {

? ? ? ? ? ? ????????????return false;

? ? ? ? ????????}

? ? ????????}

? ? ????????????// If we made it this far, objects

? ? ? ? ? ? ? ? ?// are considered equivalent

? ? ????????????return true;

}

// Outputs: true

console.log(isEquivalent(bobaFett, jangoFett));

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容