DEV Community

Cover image for Day 20 of JavaScriptmas - Domain Type Solution
Sekti Wicaksono
Sekti Wicaksono

Posted on

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.

Top comments (2)

Collapse
 
perborgen profile image
Per

Brilliant article series you're doing here, Sekti! I love it! 💯

Collapse
 
flyingduck92 profile image
Sekti Wicaksono

Thanks per, the JavaScriptmas Challenge and the Bootcamp help me a ton.