js判断两个对象是否相同的三种方式

(1).把两个对象转译成字符串进行对比

 1 JSON.stringify(object1) === JSON.stringify(object2);  

这个方法只适用于完全相同的,即键-值顺序都完全对应的对象。

对于键-值一样,但顺序不一样的对象,可以采用方法(2)

(2).Object.keys()

 1     // 列出所有的键,接着遍历数组
 2     function ifCompare(object1, object2) {
 3       var o1keys = Object.keys(object1);
 4       var o2keys = Object.keys(object2);
 5       if (o2keys.length !== o1keys.length) return false;
 6       for (let i = 0; i <= o1keys.length - 1; i++) {
 7         let key = o1keys[i];
 8         if (!o2keys.includes(key)) return false;
 9         if (object2[key] !== object1[key]) return false;
10       }
11       return true;
12     }

 

(3).ES6

 1 Object.entries(object1).toString() === Object.entries(object2).toString(); 

  

还有lodash 的 isEqual 函数(没用过)

 

posted @ 2021-01-28 17:17  瞎几把乱记  阅读(20861)  评论(1编辑  收藏  举报