code: function omitNested(path, collection, isCollectionObject) {
    const nextPath = path.shift();
    const cleanCollection = getCleanCollection(collection, isCollectionObject);
  
    if (!path.length) {
      const removeMethod = isCollectionObject ? removeKeyFromObject : removeIndicesFromArray;
  
      return removeMethod(nextPath, cleanCollection);
    }
  
    /* eslint-disable no-use-before-define */
    const omitMethod = isObject(cleanCollection[nextPath]) ? omitFromObject : omitFromArray;
    /* eslint-enable */
  
    collection[nextPath] = omitMethod(cleanCollection[nextPath], [path]);
  
    return collection;
  }
docs: @function omitNested
  
  @description
  remove the nested value at the path provided
  
  @param {Array<number|string>} path the path of the nested key
  @param {Array<*>|Object} collection the collection to update
  @param {boolean} isCollectionObject is the collection an object
  @returns {Array<*>|Object} the updated collection