Web Dev Solutions

Catalin Mititiuc

From 9f8c563c9844c3f6cc1a14614b1debdad6ec2051 Mon Sep 17 00:00:00 2001 From: Catalin Mititiuc Date: Fri, 22 Mar 2024 17:00:17 -0700 Subject: Refactor large function --- index.js | 36 ++++++++---------------------------- 1 file changed, 8 insertions(+), 28 deletions(-) diff --git a/index.js b/index.js index 5d68314..ef7cdef 100644 --- a/index.js +++ b/index.js @@ -18,41 +18,21 @@ function edgePoint(x1, y1, x2, y2, maxX, maxY) { yIntercept = x => (x - x1) * yDiff / xDiff + y1; if (xDiff > 0 && yDiff > 0) { - let yWhenXisMax = yIntercept(maxX); - let xWhenYisMax = xIntercept(maxY); + let x = xIntercept(maxY); - if (xWhenYisMax <= maxX) { - pointCoords = [xWhenYisMax, maxY]; - } else { - pointCoords = [maxX, yWhenXisMax]; - } + pointCoords = x <= maxX ? [x, maxY] : [maxX, yIntercept(maxX)]; } else if (xDiff > 0 && yDiff < 0) { - let yWhenXisMax = yIntercept(maxX); - let xWhenYisZero = xIntercept(0); + let y = yIntercept(maxX); - if (yWhenXisMax >= 0) { - pointCoords = [maxX, yWhenXisMax]; - } else { - pointCoords = [xWhenYisZero, 0]; - } + pointCoords = y >= 0 ? [maxX, y] : [xIntercept(0), 0]; } else if (xDiff < 0 && yDiff < 0) { - let yWhenXisZero = yIntercept(0); - let xWhenYisZero = xIntercept(0); + let x = xIntercept(0); - if (xWhenYisZero >= 0) { - pointCoords = [xWhenYisZero, 0]; - } else { - pointCoords = [0, yWhenXisZero]; - } + pointCoords = x >= 0 ? [x, 0] : [0, yIntercept(0)]; } else { - let yWhenXisZero = yIntercept(0); - let xWhenYisMax = xIntercept(maxY); + let y = yIntercept(0); - if (yWhenXisZero <= maxY) { - pointCoords = [0, yWhenXisZero]; - } else { - pointCoords = [xWhenYisMax, maxY]; - } + pointCoords = y <= maxY ? [0, y] : [xIntercept(maxY), maxY]; } return pointCoords; -- cgit v1.2.3