array/flattenDeep.jsjavascript
/**
 * 递归展开所有层级的嵌套数组。
 * @function flattenDeep
 * @memberof module:array
 * @param {Array} array 嵌套数组
 * @returns {Array} 完全展开后的新数组
 * @throws {TypeError} 参数不是数组时抛出
 */
function flattenDeep(array) {
  if (!Array.isArray(array)) throw new TypeError('array must be an array')
  return array.flat(Infinity)
}

export default flattenDeep