以下为ChatGPT自动生成的解答,正确与否请自行判断。 也许你也可以从大家的发帖中找到想要的答案!

BFE.devAI解答 - JavaScript 代码题
122. 实现 memoizeOne()

思路:定义一个变量存储上次调用的参数和结果,每次新参数传入时先进行比较是否相等,如果相等则直接返回上次的结果,否则重新计算结果并更新存储的参数和结果。

代码实现:

function memoizeOne(func, isEqual = (a, b) => a === b) {  let lastArgs = null;  let lastResult = null;  return function (...args) {    if (!lastArgs || !isEqual(args, lastArgs)) {      lastArgs = args;      lastResult = func.apply(this, args);    }    return lastResult;  };}

其中isEqual参数默认为判断两个值是否相等的===操作符,如果有传入isEqual参数则使用该参数判断是否相等。