Rectangular love

https://www.interviewcake.com/question/javascript/rectangular-love

by eitanp461

JavaScript

var rectangle = {

    // coordinates of bottom-left corner
    leftX: 1,
    bottomY: 5,

    // width and height
    width: 10,
    height: 4,

},
intersectingRectangle = {
    leftX: 7,
    bottomY: 7,
    width: 9,
    height: 5,
},
nonintersectingRectangle = {
    leftX: 14,
    bottomY: 11,
    width: 9,
    height: 7,
};


function coords(rect) {
	return {
  	x1: rect.leftX,
    x2: rect.leftX + rect.width,
    y1: rect.bottomY - rect.height,
    y2: rect.bottomY
  }
}

function intersect(rect1, rect2) {
	var rect1Coords = coords(rect1);
	var rect2Coords = coords(rect2);
  var x1 = Math.max(rect1Coords.x1, rect2Coords.x1);
  var x2 = Math.min(rect1Coords.x2, rect2Coords.x2);
  if (x2 <= x1) {
  	throw new Error(`No intersection x1=${x1} x2=${x2}`);
  }
  var y1 = Math.max(rect1Coords.y1, rect2Coords.y1);
  var y2 = Math.min(rect1Coords.y2, rect2Coords.y2);
  if (y2 <= y1) {
  	throw new Error(`No intersection y1=${y1} y2=${y2}`);
  }
  return {
    leftX: x1,
    bottomY: y1,
    width: x2 - x1,
    height: y2 - y1,
  }
}

console.log(intersect(rectangle,intersectingRectangle));
console.log(intersect(rectangle,nonintersectingRectangle));