code: function checkApproximateVersion(a, b) {
    const lowerBound = b.slice();
    const upperBound = b.slice();
  
    if (upperBound.length > 1) {
      upperBound.pop();
    }
    const lastIndex = upperBound.length - 1;
    const numeric = parseInt(upperBound[lastIndex], 10);
    if (isNumber(numeric)) {
      upperBound[lastIndex] = numeric + 1 + '';
    }
  
    return (
      checkGreaterThanOrEqual(a, lowerBound) &&
      checkLessThan(a, upperBound)
    );
  }
docs: Checks whether `a` is "reasonably close" to `b` (as described in
  https://www.npmjs.org/doc/misc/semver.html). For example, if `b` is "1.3.1"
  then "reasonably close" is defined as ">= 1.3.1 and < 1.4".
  
  @param {array<string>} a
  @param {array<string>} b
  @returns {boolean}