Could someone provide a detailed explanation of the i++ and y++ sections in this code, particularly the else block? I am struggling to grasp how the result is being generated

I am struggling with understanding the code for a Fibonacci Generator. What is the purpose of i++ and y++ in this context, and how do they contribute to generating the sequence? :(

function fibonacciGenerator(n) {
  var fib = [0, 1];
  var i = 0;
  var y = 1;

  if (n === 1) {
    fib.pop();
  } else {
    for (var i = 0; fib.length < n; i++) {
      fib.push(fib[i] + fib[y]);
      y++;
    }
  }
  return fib;
}

Answer №1

i will consistently be fib.length - 2, while y will consistently be fib.length - 1. As the array grows with each iteration, it is crucial to increment these two counters in order to pinpoint the last two slots at all times.

Similar questions

If you have not found the answer to your question or you are interested in this topic, then look at other similar questions below or use the search

Accessing a factory from within another in AngularJS Ionic

My Ionic app has been developed with two separate factories: one called Api, which handles API calls, and another called LDB (local database), responsible for interacting with a local Sqlite database using the CordovaSqlite plugin. While each factory work ...

Analyze items in two arrays using JavaScript and add any items that are missing

I am working on a JSON function that involves comparing objects in two different arrays, array1 and array2. The goal is to identify any missing items and either append them to array2 or create a new array called newArray1. Here is an example: const arra ...

What is the best way to automatically log out a user once their session cookie has expired during an online exam?

While developing an MVC ExpressJS Test app, I encountered an issue with auto-logout functionality for users who stop answering test questions. The error message "Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client" keeps app ...

Is there a way to close the menu in react by clicking anywhere on the

Presently, I have a solution to close my topbar menu that involves clicking the menu icon. However, this method is not satisfactory because it only closes the menu when the icon is clicked. I am looking for a way to make the menu close when any area of th ...

Showcasing Array information in Json format

I am currently working on displaying the JSON output of a dynamically generated flowchart. I have gathered all the details of the dropped elements in an array named finalArray, and then integrated this data into the JSON representation. All details are bei ...

What is the process for retrieving the chosen country code using material-ui-phone-number?

When incorporating user input for phone numbers, I have opted to utilize a package titled material-ui-phone-number. However, the challenge arises when attempting to retrieve the country code to verify if the user has included a 0 after the code. This infor ...

What steps can I take to persistently subscribe to SignalR from an Angular service even in the event of connection failures?

Is there a way to safely attempt to connect to SignalR with intervals between attempts until the connection is established? Also, does anyone have advice on how to handle the different stages of connectivity to the web sockets effectively? We are utilizin ...

Revert the Vue State When Navigating Back in the Browser

Background In our checkout process, we redirect to Stripe after creating an order object through an API request. To prevent users from clicking the "checkout" button multiple times during this process, we toggle a variable value to show a loading icon whe ...

What steps should I take to create a plugin for a library if defining it as a peerDependency does not provide a specific implementation for me to work with?

Requirements for My Plugin: I'm currently in the process of developing a new plugin that is dependent on popularLibrary.js. Here are the key points about my plugin: It will not function properly if popularLibrary.js is missing. It is designed to wo ...

Step-by-step guide to automatically submitting a form after obtaining geolocation without the need for manual button-clicking

I am looking for a way to automatically call a page to get geolocation data, and then submit the form to my PHP page with the values of getlat and getlon without the need to click a submit button. I have tried implementing the code below, however, despit ...

Tips on displaying a loading animation before the element appears in an Angular application

When fetching data using an Angular service, it takes approximately 2-3 seconds for the information to appear. Consequently, the corresponding HTML elements also take time to load. Is there a method to display a loading animation specifically for those e ...

Perform an AJAX request within a condition prior to executing the subsequent AJAX request

Within my database, I have two tables. When the submit button is pressed, I aim to insert a new trader into the trader table and retrieve the ID using laravel 5.2 by utilizing post ajax under certain conditions. Then, execute another post ajax for invoic ...

JavaScript MIDI File player allows for the seamless playback of MIDI

Is there an easy way to play midi files in my browser? I came across this site: , but it seems a bit complex for me. I'm looking for something simpler like this: <div id="midi-player"></div> script $('#midi-player').midiplaye ...

Running a Neo4j Cypher query with the help of jQuery

I've been attempting to create an Ajax call using jQuery to a Neo4j Server, both residing on the same machine. However, I keep encountering errors in the response. This is how my ajax call is written: var request = $.ajax({ type: "POST", url ...

Browsing using the "touchmove" feature feels extremely laggy

I implemented a workaround to achieve "position:fixed" on mobile devices, specifically my Android device. This involved creating two divs with heights that combined to match the screen height through JavaScript, and adding touch listeners to the bottom div ...

Creating a PHP Dropdown List with Leading Zeroes

I am working on a basic drop down list: <select name="day" id="day"> <?php for ($i=1; $i<=31; $i++){ if ($i < 10){ $number = "0" . $i; } else { $number = $i; } ...

How to calculate a date x days before a given date using javascript

In my Angular application, I am dealing with a date value that is stored in local storage. My current code snippet retrieves the date like this: $scope.selectedDate = localStorage.getItem('selDate'); The returned date from this code is '1 ...

Is there a more efficient alternative to `[].push.apply(this, arr)` for combining elements in an array instance within a constructor?

It only takes 0.15ms for this line in my constructor function to execute. [].push.apply(this, selector); I'm not satisfied with the 0.15ms execution time. I believe there must be a quicker alternative available. This particular line seems to be conv ...

Unable to showcase information in the center of an HTML document

Hello, I'm facing an issue with my HTML page that has a left vertical nav-bar. Despite my efforts, I can't seem to display content (text) in the center of the page as shown in the screenshot with the red oval. I've attempted inserting text ...

Writing in Node.js involves setting up a local DynamoDB for local development rather than running it in an actual Lambda

This straightforward aws.js script is used to execute dynamoDB operations locally. "use strict"; const AWS = require("aws-sdk"); AWS.config.dynamodb = { region: "eu-west-2", endpoint: "http://localhost:8000& ...