Using parameters in a nested function in Javascript

I need help passing an argument to a function nested within another function;

function add() {
  let x = arguments[0];

  function s(num) {
    return num + x;
  }
}

add(2)(3) //trying to pass the second argument to 'function s'.

I want the result of the call to be 5.

Any advice on the best way to achieve this? Thank you in advance.

Answer №1

Currying is a technique that allows you to partially apply the arguments of a function. Instead of passing all arguments at once and getting the final result, you can pass some arguments and receive a new function that will wait for the remaining ones.

As @KevBot mentioned, your example should include the return statement for the second function:

function add() {
  let x = arguments[0];

  return function s(num) {
    return num + x;
  }
}

add(2)(3);

ES6 Curried Hello World:

curriedHelloWorld = (greeting) => (name) => `${greeting}, ${name}!`;
curriedHelloWorld("Hello")("Tygar");

You can also uncurry the `curriedHelloWorld` example in reverse:

helloworld = (greeting, name) => curriedHelloWorld(greeting)(name);
helloworld("Hello", "Tygar");

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

Generating DOM elements at specific intervals using Jquery

I am looking to dynamically create 1 div container every x seconds, and repeat this process n times. To achieve this, I have started with the following code: $(document).ready(function() { for (var i = 0; i < 5; i++) { createEle(i); } }); f ...

"Displaying the y-axis in d3.js: A Step-by-Step

I am a beginner in d3.js and I'm having trouble with my y-axis not showing up in the browser. Can someone please help me find a solution? var barOffset=5; var barWidth=50; var width=700,height=700; function processData(data,key){ var objects=[]; ...

Using Typescript to typecast in D3.js

Utilizing the D3 graph example available here. I've defined my data object as shown below: interface ID3Data { age: string, population: number } const data: ID3Data[] = [ { age: "<5", population: 2704659 }, { age: "5-13", population: 4499 ...

Having trouble with implementing ng-hide and ng-show functionality

I have been working on creating my very first Angular website and so far, everything has been going smoothly with the first page. However, I am facing an issue with the second page not appearing as expected when it meets the condition set with ng-show in t ...

issue with animation occurs when the value changes while the setTimeout timer is still running

function wallpaperMediaPropertiesListener(event) { // reset animation test.stop(true); test.css('margin-left', 0); // set song title. test.text(event.title); var testWidth = test.outerWidth(); // clone text ...

Implementing pagination in Firestore using React-Redux

I'm currently working on implementing pagination with Firebase and React Redux Toolkit. I've grasped the logic behind it, but I'm facing challenges when integrating it with Redux. Initially, my approach was to store the last document in the ...

Eliminate any blank spaces in the string before comparing the option value to determine whether the DIV should be

I am trying to create a function that hides or shows a specific DIV based on the option value selected from the product. Due to automatic addition of option values by Shopify, some options have more than one word with spaces in between. Since I cannot chan ...

Having trouble sending a JavaScript variable to PHP using Ajax

I have a challenge where I need to pass values of a JavaScript variable to a PHP page and use those values there. However, when I do this, it returns a new HTML page that displays an error message saying "some error". Unfortunately, I cannot figure out why ...

How can we arrange a two-dimensional array in descending order of string length using the first string in the sub-array as the basis for

If I have an array with elements like these: var array = [["This should be last", 1], ["This should be first I think", 1], ["This is the middle one", 1]]; The second value in each sub-array, which is always 1 in this case, doesn ...

Issues with Google API Column chart example in jsfiddle demonstration are hindering its functionality

I'm attempting to make the Google Column Chart example provided here function properly. Here is my effort: http://jsfiddle.net/dwNE4/ (Note: I'm having some difficulty getting it to load) This is the code from the fiddle: HTML <script src=&q ...

Experiencing excessive memory usage when attempting to load a large JSON file in Firefox

We are in the process of developing a client-based application using HTML5 and indexedDB on Firefox 28. When large amounts of data are loaded to Firefox for the first time using AJAX requests in JSON format, each JSON response is approximately 2MB (gzipped ...

Is it possible to load the content before loading the corresponding images?

With a list of 10 contacts to display, I want the contacts to load first so users can view the information before the corresponding images. The HTML structure is as follows: <table id="contactsTable" data-role="listview" data-dividertheme="c"> < ...

After the decimal point, there are two digits

My input field is disabled, where the result should be displayed as a product of "Quantity" and "Price" columns ("Quantity" * "Price" = "Total"). However, I am facing an issue where the result often displays more than 2 digits (for example: 3 * 2.93), desp ...

React native and redux: Updating state with setState is not possible during an ongoing state transition

Currently in the process of developing an app utilizing React Native and redux, alongside Express js for handling Ajax requests. Encountering an issue where the data from my Ajax request fails to load, accompanied by the following warning: Warning: set ...

Obtaining Texture Map coordinates from an Object's surface in Three.js

Seeking a solution for mapping a 3D object in Three.js to a point on its surface and finding the corresponding point on a texture file using x,y coordinates. Currently, I am using raycasting to locate points on the object's face, each of which should ...

React does not allow functions as child elements. I have thoroughly reviewed my code and cannot identify the source of this issue

I have a parent component with a lot of logic and several other components that are functional components with only the return JSX method. I kept getting a lot of "Functions are not valid as a React child" errors, so I made some changes to fix this. I thou ...

How can I handle optional props with defaults in React + TypeScript without relying on typecasting while ensuring strictNullChecks is enabled?

Consider the scenario where we have the following component: interface Props { someOptionalProp?: string; } class SomeComponent extends React.Component<Props, {}> { public static defaultProps = { someOptionalProp: 'some defaul ...

Angular: Leveraging real-time data updates to populate an Angular Material Table by subscribing to a dynamic data variable in a service

Seeking guidance on how to set up a subscription to a dynamic variable (searchData - representing search results) for use as a data source in an Angular Material Table. I have a table-datasource.ts file where I want to subscribe to the search results from ...

Transferring information between postponed functions

Currently, I am incorporating deferred functions with .done and facing a situation like this: askTime(number).done(formatTime).done(function(html){ times += html; }); Despite the fact that formatTime returns data, the html variable contains the data r ...

Is there a way to deactivate JavaScript upon leaving a div with the mouse?

Is it possible to disable JavaScript when moving the mouse out of a div? I have implemented code using onmousemove to adjust the width of the left div ID. However, I noticed that JavaScript continues to work even when I move the mouse out of the container ...