Search code examples
javascriptasynchronousnode-async

async.js each get index in iterator


I'm using caolan's async.js library, specifically the .each method.

How do you get access to the index in the iterator?

async.each(ary, function(element, callback){
  //do stuff here for each element in ary
  //how do I get access to the index?
}, function(err) {
  //final callback here
})

Solution

  • You can use async.forEachOf - it calls its iterator callback with the index as its second argument.

    > async.forEachOf(['a', 'b', 'c'], function () {console.log(arguments)});
    { '0': 'a', '1': 0, '2': [Function] }
    { '0': 'b', '1': 1, '2': [Function] }
    { '0': 'c', '1': 2, '2': [Function] }
    

    see the docs for more info.