Javascript 编写使用立即调用函数表达式(IIFE)在指定位置创建斐波那契函数的代码

Javascript 编写使用立即调用函数表达式(IIFE)在指定位置创建斐波那契函数的代码,javascript,Javascript,目前,我正在尝试编写javascript来实现斐波那契序列。我得到了数学部分,但我们必须有一个名为fibonacciResults的数组,我不确定如何使用名为fibonacciResults的数组并对其进行初始化,以便fibonacci(0)为0,fibonacci(1)为1。另外,如果结果(fibonacci(n))以前从未计算过,则递归计算新结果并将其保存在fibonacciResults数组中 document.querySelector('#calculate-fibonacci

目前,我正在尝试编写javascript来实现斐波那契序列。我得到了数学部分,但我们必须有一个名为fibonacciResults的数组,我不确定如何使用名为fibonacciResults的数组并对其进行初始化,以便fibonacci(0)为0,fibonacci(1)为1。另外,如果结果(fibonacci(n))以前从未计算过,则递归计算新结果并将其保存在fibonacciResults数组中

    document.querySelector('#calculate-fibonacci').addEventListener('click', function () {
      var fibonacci; // Do not declare more variables here.

      // WRITE YOUR fibonacci FUNCTION HERE
      fibonacci = function fibonacci(n) {
         fibonacciResults = [];
         n = Math.round(n);
         if (Number.isFinite(n) && n >= 0) {
            if (n < 2) {
               return n;
            }
            return fibonacci(n - 2) + fibonacci(n - 1);
         }
         return 0;
      };

      (function () {
         var whichFibonacciNumber;
         // Get the user's number.
         whichFibonacciNumber = parseInt(document.querySelector('#fibonacci-input').value, 10);
         // Use the fibonacci function to calculate the output.
         document.querySelector('#which-fibonacci-number').textContent = whichFibonacciNumber;
         document.querySelector('#fibonacci-number').textContent = fibonacci(whichFibonacciNumber);
      }());
   }, false);
document.querySelector(“#计算斐波那契”).addEventListener('click',函数(){
var fibonacci;//不要在此处声明更多变量。
//在这里写下你的斐波那契函数
斐波那契=函数斐波那契(n){
fibonacciResults=[];
n=数学四舍五入(n);
if(Number.isFinite(n)&&n>=0){
if(n<2){
返回n;
}
返回斐波那契(n-2)+斐波那契(n-1);
}
返回0;
};
(功能(){
var,该var为Bibonaccinumber;
//获取用户的号码。
whichFibonacciNumber=parseInt(document.querySelector('#fibonacci input')。值,10);
//使用斐波那契函数计算输出。
document.querySelector(“#哪个斐波那契数”).textContent=哪个斐波那契数;
document.querySelector(“#fibonacci number”).textContent=fibonacci(whichFibonacciNumber);
}());
},假);
fibonacci=(函数(){
var cache={};
返回函数(n){
var cached=cache[n];
如果(缓存)返回缓存;
如果(n
fibonacci=(函数(){
var cache={};
返回函数(n){
var cached=cache[n];
如果(缓存)返回缓存;
如果(n)
fibonacci = (function () {
    var cache = {};
    return function (n) {

        var cached = cache[n];
        if (cached) return cached;

        if (n <= 1) return n;
        console.log(n);

        return (cache[n] = fibonacci(n - 2) + fibonacci(n - 1));
    };
}());