Day 20 of JavaScriptmas - Domain Type Solution

flyingduck92

Sekti Wicaksono

Posted on December 20, 2020

Day 20 of JavaScriptmas - Domain Type Solution

Day 20 challenge is to return an array of information from the domain name based on the last dot (.)

For example, an array of ["en.wiki.org", "codefights.com", "happy.net", "code.info"] will return ["organization", "commercial", "network", "information"]

I also mapping each domain name .com for commercial, .info for information, .net for network, .org for organization.

These are two methods that I found to solve the challenge

1st - Mapping domain with filter

function domainType(domains) {
    let typeNames = [
        {id: 'com', desc: 'commercial'},
        {id: 'info', desc: 'information'},
        {id: 'net', desc: 'network'},
        {id: 'org', desc: 'organization'}
    ];

    const result = domains.map( url => {
        const urlType = url.split('.').pop();       

        let name = typeNames.filter(name => {
           if(urlType === name.id) {
                return name;
           } 
        });
        name = Object.assign({}, ...name);

        return name.desc;
    });

    return result;
}
Enter fullscreen mode Exit fullscreen mode

2nd - Mapping domain with switch

function domainType(domains) {
    let result = domains.map(domain => {
        switch(domain.split('.').pop()) {
            case 'com':
                return 'commercial';
                break;
            case 'info':
                return 'information';
                break;
            case 'net':
                return 'network';
                break;
            case 'org':
                return 'organization';
                break;
            default: 
             return 'unknown domain';
        }
    });
    return result;
}
Enter fullscreen mode Exit fullscreen mode

Both methods are good for memory muscles, but I found out that the first one most likely going to be the common case.

💖 💪 🙅 🚩
flyingduck92
Sekti Wicaksono

Posted on December 20, 2020

Join Our Newsletter. No Spam, Only the good stuff.

Sign up to receive the latest update from our blog.

Related

Day 21 of JavaScriptmas - Sum of Two Solution
24daysofjavascriptmas Day 21 of JavaScriptmas - Sum of Two Solution

December 21, 2020

Day 20 of JavaScriptmas - Domain Type Solution
24daysofjavascriptmas Day 20 of JavaScriptmas - Domain Type Solution

December 20, 2020