JSFiddle - React, Tailwind, and code Playground

HTML

<table>
  <tr>
    <td>Input:</td>
    <td>&nbsp;</td>
    <td id="inputVal"></td>
  </tr>
  <tr>
    <td>Output (w/ String):</td>
    <td></td>
    <td id="outputVal_A"></td>
  </tr>
  <tr>
    <td>Output (w/ Integer):</td>
    <td></td>
    <td id="outputVal_B"></td>
  </tr>
  <tr>
    <td>Alt. Output:</td>
    <td></td>
    <td id="altVal"></td>
  </tr>
</table>

JavaScript

var rgb = [202, 186, 168];

function rgbToHex(r, g, b) {
  return "#" + ((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1);
}

function _rgbToHex(r, g, b) {
  return "#" + ((1 << 24) + ((+r) << 16) + ((+g) << 8) + (+b)).toString(16).slice(1);
}


// Display the original RGB values.
document.getElementById("inputVal").innerText = rgb.join(", ");

// Display rgbToHex output w/ string type arguments.
rgb = rgb.map(function(v) {
  return String(v);
});
document.getElementById("outputVal_A").innerText = rgbToHex(rgb[0], rgb[1], rgb[2]);

// Display rgbToHex output w/ int type arguments.
rgb = rgb.map(function(v) {
  return parseInt(v);
});
document.getElementById("outputVal_B").innerText = rgbToHex(rgb[0], rgb[1], rgb[2]);

// Display rgbToHex output using modified function // w/ mixed argument types.
document.getElementById("altVal").innerText = _rgbToHex(String(rgb[0]), parseInt(rgb[1]), rgb[2]);