In my Three.js project, I've been utilizing these formulas to determine the visible width and height:
var vFOV = camera.fov * Math.PI / 180; // converting vertical fov to radians
var height = 2 * Math.tan( vFOV / 2 ) * dist; // calculating visible height
var aspect = window.width / window.height;
var width = height * aspect; // figuring out visible width
Using this information, I figure out the camera zoom needed for an object to perfectly fit within the render area by its WIDTH
var zoom = (ObjectHeight/aspect) / (2*Math.tan(vFOV/2)) + ObjectDepth;
Now, the challenge is calculating the camera zoom needed for an object to fit exactly into the render area by its HEIGHT.
Credit goes to GuyGood for providing the solution:
var zoom = (ObjectHeight/2) / Math.tan(vFOV/2) - ObjectDepth;