docs: function combineArrays(array1, array2, naValue, func) {
    var skipMissing = true;
    if (isUndefined(func)) {
      func = naValue;
      skipMissing = false;
    }
  
    var arr1Len = array1.length;
    var arr2Len = array2.length;
    var outputLen = validateArrayLengths(arr1Len, arr2Len);
    var isSingleton1 = (arr1Len === 1);
    var isSingleton2 = (arr2Len === 1);
  
    var result = allocArray(outputLen);
    for (var i = 0; i < outputLen; i++) {
      var val1 = isSingleton1 ? array1[0] : array1[i];
      var val2 = isSingleton2 ? array2[0] : array2[i];
      if (skipMissing && (isMissing(val1) || isMissing(val2))) {
        result[i] = naValue;
      } else {
        result[i] = func(val1, val2);
      }
    }
    return result;
  }