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?
This question is related to
javascript
functional-programming
immutable.js
const arr = [1, 2, 3, 4, 5, 6, 7, 8, 9]
arr.map((myArr, index) => {
console.log(`your index is -> ${index} AND value is ${myArr}`);
})
_x000D_
> output will be
index is -> 0 AND value is 1
index is -> 1 AND value is 2
index is -> 2 AND value is 3
index is -> 3 AND value is 4
index is -> 4 AND value is 5
index is -> 5 AND value is 6
index is -> 6 AND value is 7
index is -> 7 AND value is 8
index is -> 8 AND value is 9
Using Ramda:
import {addIndex, map} from 'ramda';
const list = [ 'h', 'e', 'l', 'l', 'o'];
const mapIndexed = addIndex(map);
mapIndexed((currElement, index) => {
console.log("The current iteration is: " + index);
console.log("The current element is: " + currElement);
console.log("\n");
return 'X';
}, list);
Array.prototype.map()
index:One can access the index Array.prototype.map()
via the second argument of the callback function. Here is an example:
const array = [1, 2, 3, 4];_x000D_
_x000D_
_x000D_
const map = array.map((x, index) => {_x000D_
console.log(index);_x000D_
return x + index;_x000D_
});_x000D_
_x000D_
console.log(map);
_x000D_
Array.prototype.map()
:Array.map()
is a object which will be the this
value for the callback function. Keep in mind that you have to use the regular function
keyword in order to declare the callback since an arrow function doesn't have its own binding to the this
keyword.For example:
const array = [1, 2, 3, 4];_x000D_
_x000D_
const thisObj = {prop1: 1}_x000D_
_x000D_
_x000D_
const map = array.map( function (x, index, array) {_x000D_
console.log(array);_x000D_
console.log(this)_x000D_
}, thisObj);
_x000D_
Source: Stackoverflow.com