Yes, you should be able to do something similar to what's above but you will have to add a conditional statement before the map load function. You should notice right at the beginning of the createMap function we are looping through the configOptions to get each webmap id but we are also passing an index number (i) along within the loop so we can keep track of which map we're currently looking at in the loop. Starting with 0, which will be the first map in the config file, we can set the min and max zoom to a local variable which we will then pass to the map load options. If you have more than 3 maps, you can just add more "else if" statements. See below:
function createMap() {
dojo.forEach(configOptions.webmaps, function (arg, i) {
if (configOptions.tabTitles == null) {
configOptions.tabTitles = {
"title": ""
};
}
dojo.place("<div id='mapDiv" + i + "' class='map'></div>", dojo.byId('mapPane'), "last");
if (configOptions.webmaps.length > 1) {
dojo.place("<h3 id='title" + i + "' class='mapTitle'></h3>", dojo.byId('descriptionPanel'), "last");
dojo.place("<div id='tab" + i + "' class='tab' onclick='changeMap(" + i + ")'><p id='tabText" + i + "' class='tabText'></p></div>", dojo.byId('tabArea'), "last");
dojo.addClass(dojo.byId("tab0"), "selected");
}
dojo.place("<div id='description" + i + "' class='description'></div>", dojo.byId('descriptionPanel'), "last");
dojo.place("<div id='legend" + i + "' class='legend'></div>", dojo.byId('legendPanel'), "last");
var minZoom;
var maxZoom;
if(i == 0){
minZoom = 10;
maxZoom = 17;
}
else if(i == 1){
minZoom = 3;
maxZoom = 15;
}
else{
minZoom = 12;
maxZoom = 14;
}
var mapDeferred = esri.arcgis.utils.createMap(arg.id, "mapDiv" + i, {
mapOptions: {
slider: true,
nav: false,
wrapAround180: true,
minZoom: minZoom,
maxZoom: maxZoom
},
ignorePopups: false,
bingMapsKey: configOptions.bingmapskey
});