Search code examples
javascriptfunctional-programmingimmutable.js

Index inside map() function


I am missing a option how to get the index number inside the map function using List from Immutable.js:

var list2 = list1.map(mapper => { a: mapper.a, b: mapper.index??? }).toList();

Documentation shows that map() returns Iterable<number, M>. Is there any elegant way to what I need?


Solution

  • You will be able to get the current iteration's index for the map method through its 2nd parameter.

    Example:

    const list = ['h', 'e', 'l', 'l', 'o'];
    list.map((currElement, index) => {
      console.log("The current iteration is: " + index);
      console.log("The current element is: " + currElement);
      console.log("\n");
      return currElement; //equivalent to list[index]
    });

    Output:

    The current iteration is: 0 <br>The current element is: h
     
    The current iteration is: 1 <br>The current element is: e
     
    The current iteration is: 2 <br>The current element is: l
     
    The current iteration is: 3 <br>The current element is: l 
    
    The current iteration is: 4 <br>The current element is: o
    

    See also: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/map

    Parameters

    callback - Function that produces an element of the new Array, taking three arguments:

    1. currentValue
      The current element being processed in the array.

    2) index
    The index of the current element being processed in the array.

    1. array
      The array map was called upon.