This code should do what you want:
var features = <your array of features>
var maxX, maxY, minX, minY;
for(var i = 0; i < features.length; i++) {
if(i == 0) {
maxX = features.geometry.x;
minX = features.geometry.x;
maxY = features.geometry.y;
minY = features.geometry.y;
}
else {
if(features.geometry.x > maxX) {
maxX = features.geometry.x;
}
if(features.geometry.x < minX) {
minX = features.geometry.x;
}
if(features.geometry.y > maxY) {
maxY = features.geometry.y;
}
if(features.geometry.y < minY) {
minY = features.geometry.y;
}
}
}
var extent = new Extent(minX, minY, maxX, maxY, new SpatialReference({ wkid:4326 }));
I tested this with a point feature layer. If you are using polygons you will have to use the polygon class's getExtent() method instead of geometry.x or geometry.y. So your code would look something like: features.getExtent().xmin and features.getExtent().ymax