Heim >Web-Frontend >js-Tutorial >Wie kann ich die Unterschiede zwischen zwei JavaScript-Objektarrays effizient finden?

Wie kann ich die Unterschiede zwischen zwei JavaScript-Objektarrays effizient finden?

Linda Hamilton
Linda HamiltonOriginal
2024-12-13 14:35:10913Durchsuche

How Can I Efficiently Find the Differences Between Two JavaScript Arrays of Objects?

Array-Unterschiede in JavaScript abrufen

Bei zwei Arrays von Objekten ist es wünschenswert, deren Unterschiede zu identifizieren. In dieser Hinsicht bietet das folgende Code-Snippet eine Lösung:

const a = [{ value: "0", display: "Jamsheer" }, { value: "1", display: "Muhammed" }, { value: "2", display: "Ravi" }, { value: "3", display: "Ajmal" }, { value: "4", display: "Ryan" }];
const b = [{ value: "0", display: "Jamsheer" }, { value: "1", display: "Muhammed" }, { value: "2", display: "Ravi" }, { value: "3", display: "Ajmal" }];

// Equality comparison function
const isSameUser = (a, b) => a.value === b.value && a.display === b.display;

// Filter function to identify unique elements in the left array (a)
const onlyInLeft = (left, right, compareFunction) =>
  left.filter(leftValue =>
    !right.some(rightValue =>
      compareFunction(leftValue, rightValue)
    )
  );

// Apply the filter functions
const onlyInA = onlyInLeft(a, b, isSameUser);
const onlyInB = onlyInLeft(b, a, isSameUser);

// Concatenate the unique elements from both arrays
const result = [...onlyInA, ...onlyInB];

console.log(result);

Dieser Code vergleicht effektiv die Arrays von Objekten mithilfe der bereitgestellten Vergleichsfunktion (isSameUser) und identifiziert die eindeutigen Elemente in jedem Array. Das Endergebnis ist ein Array, das diese eindeutigen Elemente aus beiden Eingabearrays enthält.

Das obige ist der detaillierte Inhalt vonWie kann ich die Unterschiede zwischen zwei JavaScript-Objektarrays effizient finden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn