A Javascript function that calls itself repeatedly

This is file1:

file1
include file2;

this is file2:

file2
include file3;

this is file3:

file3
include file4;

this is file4:

file4

The desired outcome is:

file1
file2
file3
file4

What needs to be fixed in this code snippet?

function recurse(data, callback) {
    if (data.match(/include(.*)\;/)) {
        var fn = data.match(/include(.*)\;/)[1];
        var filetxt = readfile(fn);
        recurse(filetxt, callback);
    } else {
        callback(data);
    }
}
var txt = recurse(readfile('file1'), function(s) {
    console.log(s);
})

Answer №1

Update your regular expression to

/include (.*)\;/

in order for the captured group to grab "fileN" instead of " fileN" (pay attention to the space at the beginning).

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

Using the named function and function parameter to call `preventDefault()` and avoid the default

I want to incorporate an e.preventDefault() call in my event listener. My function, "voteNoClick", needs to receive a parameter named "direction". How can I pass both the direction parameter and the event object into the function, allowing me to include e. ...

Displaying time and user names on Discord Rich Presence

I am currently developing a Discord bot in JavaScript that responds with "User has been playing GameName for Hours" when a specific command is called. My code functions properly when the mentioned user is playing a game without rich presence support. Howev ...

Challenges encountered with the findOneAndUpdate function

My intention is to send a put request to the /update route. The console.log() messages are being printed in the terminal, confirming that it is working as expected: https://i.sstatic.net/nHyqz.png However, there seems to be an issue with the find one an ...

Issue with dropdown component in material ui version v1.0 beta 26 encountered

Currently, I am encountering an issue with the dropdown component while using Material UI v1.0 beta.26. In this updated version, you are required to utilize the Select component along with MenuItem. Although my dropdown is successfully populated upon rend ...

Guide on Redirecting Response to a File using Co-Request module with NodeJs

I am utilizing Co-Request from this repository to fetch a Zip file from a URL, and the code I have for fetching it is as follows: The current code works fine. However, I'm facing difficulty in saving the response Zip file to an actual file. var co = ...

Pressing the mouse on the div causes it to vanish until an animation is triggered

I am working with two objects: object1 and object2. object1 is set to have an animation delay of 0s object2 has an animation delay of 0.5s When you click on 1., both objects are assigned the class .animation, which works as expected. However, object2 wa ...

How can I merge my two constants in the handle change function in React and also filter my array?

Currently, I am utilizing React hooks and encountering an issue where the values entered are not being captured when typing. It seems that the input gets reset frequently. Below is the snippet of code illustrating my handle changer function: //handle chan ...

What is the best way to determine the nearest vertex to a given 3D point?

https://i.sstatic.net/Ooh8W.png Objective: I am aiming to identify the closest vertex to the clicked point. Components Needed: Perspective camera Icosahedron geometry (applied basicmeshmaterial with wireframe) Rotating geometry Raycaster Current Clic ...

How to develop a custom JavaScript code for highlighting a chosen menu item on a navigation bar?

I am currently managing a navigation menu containing approximately 10 items. I have created a piece of code that updates the selected and non-selected links by manually adjusting classes. However, this method seems inefficient and cumbersome to maintain. ...

Display exclusively the chosen option from the dropdown menu

I am facing an issue with the select input on my webpage. Whenever I try to print the page, it prints all the options of the select instead of just the one that is selected. Can someone please guide me on how to modify it so that only the selected option ...

Detecting whether a browser is capable of supporting dark mode

One method to determine if dark mode is active is by using prefers-color-scheme: dark: const isDarkMode = window.matchMedia('(prefers-color-scheme: dark)').matches; Is there a way to detect if a browser supports dark mode as well? (By "supports ...

What is the best way to implement react-router following the detection of an error using an error boundary?

In my React application built with create-react-app, I have implemented react-router for navigating between different components. Recently, I delved into error handling and came across error boundaries. My goal is to display the main structure of the appli ...

Is it possible to transform a class file into a function using hooks?

I have this React class that I want to convert into React hooks. I attempted to do so but ran into some issues. Here are the original and updated codes: class Parent extends React.Component { constructor(props) { super(props); this.state = { nam ...

What is the best way to generate a variable amount of div elements with constantly changing content using Angular2?

I'm not entirely sure on the process, but I believe ngFor would be used in this scenario. Essentially, my goal is to generate the following div multiple times, with each iteration updating the value inside the brackets from 0 to 1, 2, and so forth... ...

Delving into the prolonged compilation time and deciphering the root cause of the latency issue within AngularJs

Lately, I've become fixated on a particular issue that I need your help solving. My task at work involves creating a list of posts with comments, each post having the states of view, edit, and delete. To manage the posts and comments, I've devel ...

When was Chrome first updated to include timezone offset support for Intl.DateTimeFormat()?

My experience with Chromium 121 has been positive using the Intl.DateTimeFormat as shown below: new Intl.DateTimeFormat('en', { dateStyle: 'long', timeStyle: 'long', timeZone: '+0500', }).format ...

Is it possible to obtain a reference to the object with _.find? What is the correct way to update a property of the resultant object

When using lodash find to query an object from an array and then setting a property of that object, the array remains unchanged when printed out. I would appreciate feedback from someone with more experience in handling objects with lodash in JavaScript. ...

Extracting information from the fileuploadfield in Ext JS 3

Currently utilizing Ext.ux.FileUploadField within Ext JS 3.3.1. Aiming to retrieve the file data from the form without having to submit it. Wondering if anyone has insight on whether this is feasible. Currently able to view the filename but not the actual ...

Swap two frames effortlessly with just a single click!

Is there a way to effortlessly change the contents of two frames with just one click? With a single click, I'd like to modify both "framename" and "framename2" by setting their href attribute to 'qwerty' and 'qwerty2' respectively ...

Moving a DOM element within AngularJS to a new location

I have created an angular directive that functions like a carousel. To keep the dom element count low, I delete elements from the dom and then re-insert them using angular.element to select, remove, and insert items as shown below: app.directive('myD ...