比较两个对象是否相同

问题描述: 比较两个对象是否相等

1. 通过JSON.stringify()对比

例: let o1 = {a: 1, b: 2}   o2 = {a: 1, b: 2}

function isEqual (o1, o2){

    return JSON.stringify(o1) ===  JSON.stringify(o2)

}

优点:方便简单

缺点: 当对象内元素值顺便不同时,得出的结果错误

let o3 = {b: 2, a: 1}

isEqual (o1, o3) // false

2. 遍历对象对没个元素的值进行对比

function isEqual(o1, o2) {

    let o1Keys = Object.getOwnPropetyNames(o1)

    let o2Keys = Object.getOwnPropetyNames(o2)

    if(o1Keys.length !== o2Keys.length ) {

        return false

    }

    for(let i = 0; i < o1Keys.length; i ++ ) {

        if(o1[o1Keys[i]] !== o2[o2Keys[i]] ) {

            return false
        }

    }

return true

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容