« [Challenge] Week 2/28/05: Getting form and field names (answer) | Main | [Tip] JProgressBar bean »

March 06, 2005

[Challenge] Week 3/7/05: Code Contortions

by David Workman
Data Mosaic

How good are your code reading skills? Below I have listed five methods. The task is for you to group together the methods that accomplish the same function. Umm...did I slip in a trick method? I wouldn't do that....

FYI: you may want to hit the print button at the bottom of the post to get a page that formats the code at a larger size. Have fun!

Method 1

elements.fld_city.fgcolor = globals.fgcolor;
elements.fld_city.bgcolor = globals.bgcolor;

elements.fld_companyname.fgcolor = globals.fgcolor;
elements.fld_companyname.bgcolor = globals.bgcolor;

elements.fld_contactname.fgcolor = globals.fgcolor;
elements.fld_contactname.bgcolor = globals.bgcolor;

elements.fld_contacttitle.fgcolor = globals.fgcolor;
elements.fld_contacttitle.bgcolor = globals.bgcolor;

elements.fld_country.fgcolor = globals.fgcolor;
elements.fld_country.bgcolor = globals.bgcolor;

elements.fld_dateee.fgcolor = globals.fgcolor;
elements.fld_dateee.bgcolor = globals.bgcolor;

elements.fld_ddd.fgcolor = globals.fgcolor;
elements.fld_ddd.bgcolor = globals.bgcolor;

elements.fld_fax.fgcolor = globals.fgcolor;
elements.fld_fax.bgcolor = globals.bgcolor;

Method 2

var check;

for ( var i = 0 ; i < elements.length ; i++ )
{
    check = elements[i].getName();
    check = check.slice(0,3);    
    
    if (check == 'fld')
    {    
        elements[i].fgcolor = globals.fgcolor;
        elements[i].bgcolor = globals.bgcolor;
    }    
}

Method 3

for (var i in elements)
{
    if (elements[i].getName().slice(0,3) == 'fld')
    {    
        elements[i].fgcolor = globals.fgcolor;
        elements[i].bgcolor = globals.bgcolor;
    }    
}

Method 4

for (var i in elements)
{
    if (elements[i].getName().slice(0,3) == 'fld')
    {
        for (var k in elements[i])
        {        
            switch(k)
            {
                case 'fgcolor':    elements[i][k] = globals.fgcolor; break;
                case 'bgcolor': elements[i][k] = globals.bgcolor; break;
            }
        }    
    }
}

Method 5

var propertyARY = new Array("fgcolor", "bgcolor");

var valueARY = new Array(globals.fgcolor, globals.bgcolor);

var elementOBJ = new Object;
        
for ( var i = 0 ; i < propertyARY.length ; i++ )
{
    elementOBJ[propertyARY[i]] = valueARY[i];
}

for (var i in elements)
{
    if (elements[i].getName().slice(0,3) == 'fld')
    {
        for (var k in elementOBJ)
        {
            elements[i][k] = elementOBJ[k];
        }    
    }
}

| Posted by David Workman on March 6, 2005 at 07:50 PM in Challenge | Permalink

TrackBack

TrackBack URL for this entry:
http://www.typepad.com/t/trackback/118167/1971210

Listed below are links to weblogs that reference [Challenge] Week 3/7/05: Code Contortions:

Comments

Post a comment