前端24暑期实习面试总结 手撕代码一

105 阅读1分钟
  1. 在原型上实现find方法
Array.prototype.myFind = function (callback) {
  for (let i = 0; i < this.length; i++) {
    //callback需要三个参数:element(当前正在处理的函数),index(当前元素在数据库中的索引),array(调用find()的备份本身)
    if (callback(this[i], i, this)) {
      return this[i]
    }
  }
  return undefined
}

const num = [1, 2, 3, 5, 6]
let arr = num.find(element => element > 4)
console.log(arr)

反思:

  • 对原型的理解不深刻,无从下手
  • find函数完全记错了

编写一个计算数学函数f(n)的代码。 根据问题描述,数学函数f(n)有以下定义: 当n=1时,f(n)=1; 当n=2时,f(n)=2; 当n=3时,f(n)=3; 当n>3时,f(n)是i=3到n时f(i-1)和f(i-2)的乘积的和。 original_1713161045339_cbf1d6261b6f7c1bdfc7ba657f.png

function f(n) {
  if (n <= 3) {
    return n
  }

  let sum = 0
  for (let i = 3; i <= n; i++) {
    sum += f(i - 1) * f(i - 2)
  }
  return sum
}
console.log(f(1))
console.log(f(4))