Source: compactArray.js

// @flow

/**
  * Eliminates null/undefined values from array (flow compliant)
  * @function compactArray
  * @param {array} arr - Source array
  * @return {array}
  */
// TODO narrow down types (this is quite a hard task =))
export const compactArray = <T>(arr: Array<?T>): Array<T> => {
  let result = []

  for (let i = 0; i < arr.length; i++) {
    const el = arr[i]
    if (el !== null && el !== undefined) {
      result.push(el)
    }
  }

  return result
}

export default compactArray