在JavaScript 中尋找兩個物件陣列之間的差異
在JavaScript 中,您可能會遇到需要確定兩個物件數組之間的差異的情況。例如,您可能有兩個結果集,您想要比較並識別僅存在於一個而不存在於另一個中的物件。
要實現這一點,您可以利用本機 JS 函數和自訂函數的組合比較功能。具體方法如下:
定義比較函數:
const isSameUser = (a, b) => a.value === b.value && a.display === b.display;
此函數將決定是否兩個物件根據其「值」和「顯示」是相等的
使用'onlyInLeft' 函數:
const onlyInLeft = (left, right, compareFunction) => left.filter(leftValue => !right.some(rightValue => compareFunction(leftValue, rightValue)));
此函數接受三個參數:左數組、右數組和比較函數。它根據定義的比較函數從左側數組中過濾掉右側數組中沒有對應元素的元素。
使用'onlyInLeft' 函數找出差異:
const onlyInA = onlyInLeft(a, b, isSameUser); const onlyInB = onlyInLeft(b, a, isSameUser);
此程式碼適用函數個數組,使用比較函數來確定差異。
建立最終結果:
const result = [...onlyInA, ...onlyInB];
最後,「結果」陣列包含存在於一個陣列中但不存在於其他。
以上是如何有效地找到兩個 JavaScript 物件陣列之間的差異?的詳細內容。更多資訊請關注PHP中文網其他相關文章!