Skip to main content
Minor copy-editing.
Source Link

As Michael Deardeuff has already pointed out, in this particular case, maps are a good answer.

But the generic answer to "I have a lot of if (var == value) statements" is "use switch (var)." A switch reads better - it lets you read a single path and ignore the rest, knowing they won't be used for this value. For example:

function test(radioResults) {

    roll = parseFloat(parent.roll);   // This is unused
    switch (radioResults[1].toString())
    {
        case '7707330':
            gender = 'boy';
            break;
        case '7707333':
            gender = 'girl';
            break;
        case '7707336':
            gender = 'both';
            break;
        default:
            /* Your code ignores the possibility of an unexpected value */
    }

    switch (radioResults[0].toString())
    {
        case '7707341':
            maori(gender);
            break;
        case '7707344':
            pasifika(gender);
            break;
        case  '7707347':
            all(gender);
            break;
        default:
            /* Your code ignores the possibility of an unexpected value */
    }
}

Or, in this simple case, even:

function test(radioResults) {

    switch (radioResults[1].toString())
    {
        case '7707330': gender = 'boy'; break;
        case '7707333': gender = 'girl'; break;
        case '7707336': gender = 'both'; break;
    }

    switch (radioResults[0].toString())
    {
        case '7707341': maori(gender); break;
        case '7707344': pasifika(gender); break;
        case  '7707347': all(gender); break;
    }
}

As Michael Deardeuff has already pointed out, in this particular case, maps are a good answer.

But the generic answer to "I have a lot of if (var == value) statements" is "use switch (var). A switch reads better - it lets you read a single path and ignore the rest, knowing they won't be used for this value. For example:

function test(radioResults) {

    roll = parseFloat(parent.roll);   // This is unused
    switch (radioResults[1].toString())
    {
        case '7707330':
            gender = 'boy';
            break;
        case '7707333':
            gender = 'girl';
            break;
        case '7707336':
            gender = 'both';
            break;
        default:
            /* Your code ignores the possibility of an unexpected value */
    }

    switch (radioResults[0].toString())
    {
        case '7707341':
            maori(gender);
            break;
        case '7707344':
            pasifika(gender);
            break;
        case  '7707347':
            all(gender);
            break;
        default:
            /* Your code ignores the possibility of an unexpected value */
    }
}

Or, in this simple case, even:

function test(radioResults) {

    switch (radioResults[1].toString())
    {
        case '7707330': gender = 'boy'; break;
        case '7707333': gender = 'girl'; break;
        case '7707336': gender = 'both'; break;
    }

    switch (radioResults[0].toString())
    {
        case '7707341': maori(gender); break;
        case '7707344': pasifika(gender); break;
        case  '7707347': all(gender); break;
    }
}

As Michael Deardeuff has already pointed out, in this particular case, maps are a good answer.

But the generic answer to "I have a lot of if (var == value) statements" is "use switch (var)." A switch reads better - it lets you read a single path and ignore the rest, knowing they won't be used for this value. For example:

function test(radioResults) {

    roll = parseFloat(parent.roll);   // This is unused
    switch (radioResults[1].toString())
    {
        case '7707330':
            gender = 'boy';
            break;
        case '7707333':
            gender = 'girl';
            break;
        case '7707336':
            gender = 'both';
            break;
        default:
            /* Your code ignores the possibility of an unexpected value */
    }

    switch (radioResults[0].toString())
    {
        case '7707341':
            maori(gender);
            break;
        case '7707344':
            pasifika(gender);
            break;
        case  '7707347':
            all(gender);
            break;
        default:
            /* Your code ignores the possibility of an unexpected value */
    }
}

Or, in this simple case, even:

function test(radioResults) {

    switch (radioResults[1].toString())
    {
        case '7707330': gender = 'boy'; break;
        case '7707333': gender = 'girl'; break;
        case '7707336': gender = 'both'; break;
    }

    switch (radioResults[0].toString())
    {
        case '7707341': maori(gender); break;
        case '7707344': pasifika(gender); break;
        case '7707347': all(gender); break;
    }
}
Source Link

As Michael Deardeuff has already pointed out, in this particular case, maps are a good answer.

But the generic answer to "I have a lot of if (var == value) statements" is "use switch (var). A switch reads better - it lets you read a single path and ignore the rest, knowing they won't be used for this value. For example:

function test(radioResults) {

    roll = parseFloat(parent.roll);   // This is unused
    switch (radioResults[1].toString())
    {
        case '7707330':
            gender = 'boy';
            break;
        case '7707333':
            gender = 'girl';
            break;
        case '7707336':
            gender = 'both';
            break;
        default:
            /* Your code ignores the possibility of an unexpected value */
    }

    switch (radioResults[0].toString())
    {
        case '7707341':
            maori(gender);
            break;
        case '7707344':
            pasifika(gender);
            break;
        case  '7707347':
            all(gender);
            break;
        default:
            /* Your code ignores the possibility of an unexpected value */
    }
}

Or, in this simple case, even:

function test(radioResults) {

    switch (radioResults[1].toString())
    {
        case '7707330': gender = 'boy'; break;
        case '7707333': gender = 'girl'; break;
        case '7707336': gender = 'both'; break;
    }

    switch (radioResults[0].toString())
    {
        case '7707341': maori(gender); break;
        case '7707344': pasifika(gender); break;
        case  '7707347': all(gender); break;
    }
}