Füge zwei Textblöcke ein und siehe hervorgehobene Hinzufügungen, Löschungen und Änderungen. Zeichengenaues Diff mit Side-by-Side- oder Inline-Ansicht.
Text in beide Felder eingeben, um den Unterschied zu sehen
Die beiden obigen Funktionen berechnen dasselbe Ergebnis mit unterschiedlichen Ansätzen. Die Originalfunktion verwendet eine imperative for-Schleife mit einer veränderlichen let-Variablen. Die geänderte Version verwendet Array.reduce mit einem const. Der Diff hebt genau hervor, was sich während dieser Refaktorisierung geändert hat.
Der Myers-Algorithmus ist die Grundlage der meisten Diff-Tools. Er modelliert den Vergleich als Problem des kleinsten Editierskripts: Finde bei zwei gegebenen Folgen von Zeilen die minimale Anzahl von Einfügungen und Löschungen, um die erste in die zweite umzuwandeln.
Patience Diff identifiziert zuerst Zeilen, die in jeder Datei genau einmal vorkommen (eindeutige Zeilen), verwendet diese als Anker und wendet dann Rekursion auf die Bereiche zwischen den Ankern an.
Nachdem festgestellt wurde, welche Zeilen sich geändert haben, kann ein Diff-Tool denselben Algorithmus auf Zeichenebene innerhalb jeder geänderten Zeile anwenden.
@@ -1,7 +1,8 @@
function calculateTotal(items) {
- let total = 0;
- for (let i = 0; i < items.length; i++) {
- total += items[i].price * items[i].quantity;
- }
+ const total = items.reduce(
+ (sum, item) => sum + item.price * item.quantity,
+ 0
+ );
return total;
}
Side by Side platziert das Original links und das Geänderte rechts. Es ist besser für Code und strukturierten Text.
Die Inline-Ansicht mischt entfernte und hinzugefügte Zeilen in einer einzigen Spalte. Sie ist kompakter.
Git diff funktioniert nur bei Dateien in einem Git-Repository. Für Inhalte außerhalb eines Repos oder zum Vergleichen von Dingen, die nicht als Dateien existieren, ist ein Online-Diff-Tool die praktische Wahl.
Nothing you paste leaves this tab. Every tool runs entirely in your browser — no upload, no server, no account.