Me encontré con este fragmento de código en un libro que estoy leyendo, y no pude entender qué hace el argumento b que se define en la función dentro del método forEach.
Aquí está el código fuente:
var tab = [2, 3, 5]; tab.map(x => x + 3) .filter(x => x > 5) .forEach(function(a,b){console.log(a-3);});Bien, profundicé un poco más y descubrí que la función dentro del método forEach() puede tomar hasta 3 argumentos, por lo que la función se puede escribir así: forEach(function(a, b, c) { // Instructions }); siendo a el elemento de la iteración actual, b el índice de ese elemento y c la matriz en sí.
Ejemplo:
const samples = ['sample_1', 'sample_2', 'sample_3']; samples.forEach(function(a, b, c){ console.log(a); // shows the element console.log(b); // shows the index of the element console.log(c); // shows the whole array console.log('Onto the next sample.') }); En este ejemplo, en la primera iteración, a será 'sample_1', b será 0 y c será la matriz completa. Segunda iteración, a es 'sample_2', b será 1 y c será la matriz completa. Y así sucesivamente con todas las iteraciones restantes. Tenga en cuenta que la función dentro del método forEach() solo toma 3 argumentos, no más.
b es opcional, es el índice del elemento