Looping should not be necessary. You can use an AreaOnAreaOverlayer, writing the Value attribute to a list, a ListSorter to ensure list element 0 contains the lowest (or highest) value, a ListIndexer to write the value of element 0 back to the Value attribute, and a Dissolver to merge the polygons on the Value attribute.