JavaScript 中的物件比較看似複雜。雖然比較數字和字串等原始值很簡單,但比較物件可能會導致意想不到的結果。讓我們探索不同的物件比較方法,並建立一個強大的解決方案來偵測物件之間的變化。
當開發人員第一次遇到 JavaScript 中的物件比較時,他們經常嘗試這樣的操作:
令人驚訝的是,即使兩個物件具有相同的內容,這也會傳回 false。發生這種情況是因為 JavaScript 比較的是物件引用,而不是它們的值。兩個物件都指向記憶體中的不同位置。
比較物件的快速方法是使用 JSON.stringify:
雖然這適用於簡單的情況,但它有限制:
讓我們創建一個更複雜的解決方案,不僅可以檢測差異,還可以告訴我們發生了什麼變化:
此實作:
這種類型的物件比較對於以下情況特別有用:
PS:這是一個 Github 要點,用於比較和獲取兩個物件之間的差異的簡單函數:
以上是如何比較(差異)兩個對象的詳細內容。更多資訊請關注PHP中文網其他相關文章!