递归函数

@Function
Recursion Function
.找规律
.找出口
[] 输入一个小于10的数字,求其阶层n!
function fn(n) {
  // if (n == 0) {
  //   return 1;
  // } else {
  //   return n * fn(n - 1);
  // }
  return n == 0 ? 1 : n * fn(n - 1);
}
[] 输入一个小于10的数字,求其斐波那契数列Fibonacci sequence:f(n)=f(n-1)+f(n-2); n≥2; f(0)=1; f(1)=1;
function fn(n) {
  if (n == 0 || n == 1) {
    return 1;
  } else {
    return fn(n - 1) + fn(n - 2);
  }
}
[] 数组扁平化 flat()- 将2维数组或多维数组都处理为1维数组
可以封装在对象原型函数prototype上
创建空数组
遍历每一个数据项,如果也是数组,就继续深入遍历
如果不是数组,是一个普通数据,就添加到空数组
返回创建的数组,实现数组扁平化
Array.prototype.flat = function () {
  let flatArr = []
  for (let item of this) {
    if (Array.isArray(item)) {
      flatArr = flatArr.concat(item.flatArr())
    } else {
      flatArr.push(item)
    }
  }
  return flatArr;
}      
[] 数组去重 - unique()