In [Google Earth Engine Developer's Guide](https://developers.google.com/earth-engine/client_server#looping), there is a recommendation to avoid `for()` loops. They recommend to use `map()` function as this example:

```
// to avoid
var clientList = [];
for(var i = 0; i < 8; i++) {
  clientList.push(i + 1);
}
print(clientList);

// to use
var serverList = ee.List.sequence(0, 7);
serverList = serverList.map(function(n) {
  return ee.Number(n).add(1);
});
print(serverList);

```

I'm trying to select MODIS scenes from each month/year prior to compute VCI. So, the approach I'd take is with a double loop:

```
modis = ee.ImageCollection("MODIS/MYD13A1");

var modis_list = [];
for(var i = 1; i <13; i++) {
  for(var j = 2000; j <2018; j++){
    modis_list.push(modis.filter(ee.Filter.calendarRange(i, i, 'month'))
                          .filter(ee.Filter.calendarRange(j, j, 'year')));
  }
}
print(modis_list);

```

Is there a way to replicate a double loop like this with `map()` function to reach a server-side approach?