最简单的递归:flattend array 扁平数组

69 阅读1分钟

flattend array 扁平数组,一道经常会遇到的面试题

当一个数据不是数组时,将数据向下传递,当满足了条件后进行操作

/**
 * @param {Array<*|Array>} value
 * @return {Array}
 */
export default function flatten(value) {
  const copy = value.slice()
  const iter = (arr, root) => {
    const copy = arr.slice()
    for(let i = 0; i < copy.length;i++) {
      if(Array.isArray(copy[i])) {
        iter(copy[i], root)
      } else {
        root.push(copy[i])
      }
    }
    return root
  }
  return iter(copy, []) 
}