Day 20 of JavaScriptmas - Domain Type Solution
Sekti Wicaksono
Posted on December 20, 2020
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;
}
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;
}
Both methods are good for memory muscles, but I found out that the first one most likely going to be the common case.
💖 💪 🙅 🚩
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.