From 8c3de42f1f45eab31c1cffd80f65a4990840c5d5 Mon Sep 17 00:00:00 2001 From: Matej Focko Date: Tue, 17 May 2022 13:54:10 +0200 Subject: [PATCH] fix: refactor parsing and also fix `NaN` Fixes #10 Signed-off-by: Matej Focko --- comparator_visualization.js | 44 +++++++++++++++++-------------------- visualization.js | 28 ++++++++++------------- 2 files changed, 31 insertions(+), 41 deletions(-) diff --git a/comparator_visualization.js b/comparator_visualization.js index 61fe743..4ab014a 100644 --- a/comparator_visualization.js +++ b/comparator_visualization.js @@ -12,37 +12,33 @@ let rRecorder = new Recorder( let left = new AVLTree(); let right = new WAVLTree(); -left.recorder = lRecorder; -right.recorder = rRecorder; - -function insertCallback() { - let number = document.getElementById("insertInput").value; - if (number === "") { +function operationCallback(lMethod, rMethod, id) { + let number = document.getElementById(id).value; + let value = parseInt(number); + if (number === "" || isNaN(value)) { return false; } - let value = parseInt(number); - - left.insert(value); - right.insert(value); - - document.getElementById("insertInput").value = ""; + lMethod(value); + rMethod(value); + document.getElementById(id).value = ""; return false; } +function insertCallback() { + return operationCallback( + left.insert.bind(left), + right.insert.bind(right), + "insertInput" + ); +} + function deleteCallback() { - let number = document.getElementById("deleteInput").value; - if (number === "") { - return false; - } - - let value = parseInt(number); - - left.delete(value); - right.delete(value); - - document.getElementById("deleteInput").value = ""; - return false; + return operationCallback( + left.delete.bind(left), + right.delete.bind(right), + "deleteInput" + ); } function switchTree(TreeType, side) { diff --git a/visualization.js b/visualization.js index acab467..33dd2a3 100644 --- a/visualization.js +++ b/visualization.js @@ -7,30 +7,24 @@ let recorder = new Recorder( let tree = new WAVLTree(); tree.recorder = recorder; -function insertCallback() { - let number = document.getElementById("insertInput").value; - if (number === "") { +function operationCallback(method, id) { + let number = document.getElementById(id).value; + let value = parseInt(number); + if (number === "" || isNaN(value)) { return false; } - let value = parseInt(number); - tree.insert(value); - - document.getElementById("insertInput").value = ""; + method(value); + document.getElementById(id).value = ""; return false; } +function insertCallback() { + return operationCallback(tree.insert.bind(tree), "insertInput"); +} + function deleteCallback() { - let number = document.getElementById("deleteInput").value; - if (number === "") { - return false; - } - - let value = parseInt(number); - tree.delete(value); - - document.getElementById("deleteInput").value = ""; - return false; + return operationCallback(tree.delete.bind(tree), "deleteInput"); } function switchTree(TreeType) {