(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 函數(沒用過)