curriculum/challenges/english/blocks/daily-coding-challenges-javascript/68e39ed6106dac2f0a98fd62.md
On October 29, 1971, the first email ever was sent, introducing the username@domain format we still use. Now, there are billions of email addresses.
In this challenge, you are given a list of email addresses and need to sort them alphabetically by domain name first (the part after the @), and username second (the part before the @).
For example, given ["[email protected]", "[email protected]", "[email protected]"], return ["[email protected]", "[email protected]", "[email protected]"].
sort(["[email protected]", "[email protected]", "[email protected]"]) should return ["[email protected]", "[email protected]", "[email protected]"].
assert.deepEqual(sort(["[email protected]", "[email protected]", "[email protected]"]), ["[email protected]", "[email protected]", "[email protected]"]);
sort(["[email protected]", "[email protected]", "[email protected]"]) should return ["[email protected]", "[email protected]", "[email protected]"].
assert.deepEqual(sort(["[email protected]", "[email protected]", "[email protected]"]), ["[email protected]", "[email protected]", "[email protected]"]);
sort(["[email protected]", "[email protected]", "[email protected]"]) should return ["[email protected]", "[email protected]", "[email protected]"].
assert.deepEqual(sort(["[email protected]", "[email protected]", "[email protected]"]), ["[email protected]", "[email protected]", "[email protected]"]);
sort(["[email protected]", "[email protected]", "[email protected]"]) should return ["[email protected]", "[email protected]", "[email protected]"].
assert.deepEqual(sort(["[email protected]", "[email protected]", "[email protected]"]), ["[email protected]", "[email protected]", "[email protected]"]);
sort(["[email protected]", "[email protected]", "[email protected]", "[email protected]", "[email protected]", "[email protected]"]) should return ["[email protected]", "[email protected]", "[email protected]", "[email protected]", "[email protected]", "[email protected]"].
assert.deepEqual(sort(["[email protected]", "[email protected]", "[email protected]", "[email protected]", "[email protected]", "[email protected]"]), ["[email protected]", "[email protected]", "[email protected]", "[email protected]", "[email protected]", "[email protected]"]);
function sort(emails) {
return emails;
}
function sort(emails) {
return emails.slice().sort((a, b) => {
const [userA, domainA] = a.split('@');
const [userB, domainB] = b.split('@');
const domainCompare = domainA.toLowerCase().localeCompare(domainB.toLowerCase());
if (domainCompare !== 0) return domainCompare;
return userA.toLowerCase().localeCompare(userB.toLowerCase());
});
}