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 函数(没用过)