Back to Freecodecamp

Challenge 219: Anniversary Milestones

curriculum/challenges/english/blocks/daily-coding-challenges-javascript/699c8e045ee7cb94ed2322da.md

latest1.9 KB
Original Source

--description--

Given an integer representing the number of years a couple has been married, return their most recent anniversary milestone according to this chart:

Years MarriedMilestone
1"Paper"
5"Wood"
10"Tin"
25"Silver"
40"Ruby"
50"Gold"
60"Diamond"
70"Platinum"
  • If they haven't reached the first milestone, return "Newlyweds".

--hints--

getMilestone(0) should return "Newlyweds".

js
assert.equal(getMilestone(0), "Newlyweds");

getMilestone(1) should return "Paper".

js
assert.equal(getMilestone(1), "Paper");

getMilestone(8) should return "Wood".

js
assert.equal(getMilestone(8), "Wood");

getMilestone(10) should return "Tin".

js
assert.equal(getMilestone(10), "Tin");

getMilestone(26) should return "Silver".

js
assert.equal(getMilestone(26), "Silver");

getMilestone(45) should return "Ruby".

js
assert.equal(getMilestone(45), "Ruby");

getMilestone(50) should return "Gold".

js
assert.equal(getMilestone(50), "Gold");

getMilestone(64) should return "Diamond".

js
assert.equal(getMilestone(64), "Diamond");

getMilestone(71) should return "Platinum".

js
assert.equal(getMilestone(71), "Platinum");

--seed--

--seed-contents--

js
function getMilestone(years) {

  return years;
}

--solutions--

js
function getMilestone(years) {
  if (years < 1) return "Newlyweds";

  const milestones = [
    [1, "Paper"],
    [5, "Wood"],
    [10, "Tin"],
    [25, "Silver"],
    [40, "Ruby"],
    [50, "Gold"],
    [60, "Diamond"],
    [70, "Platinum"]
  ];

  for (let i = milestones.length - 1; i >= 0; i--) {
    if (years >= milestones[i][0]) {
      return milestones[i][1];
    }
  }
}