Back to Freecodecamp

Step 9

curriculum/challenges/english/blocks/workshop-space-mission-roster/694ce8609fb805ba21cebc02.md

latest2.0 KB
Original Source

--description--

Mission control needs a method to swap the positions of two crew members in a roster. Create an empty function named swapCrewMembers with three parameters:

  • crew: an array of astronaut objects

  • fromIndex: the index of the first astronaut to swap

  • toIndex: the index of the second astronaut to swap

--hints--

You should create a function named swapCrewMembers.

js
assert.isFunction(swapCrewMembers);

Your swapCrewMembers function should have parameters crew, fromIndex, and toIndex.

js
const regex = __helpers.functionRegex('swapCrewMembers', ['crew', 'fromIndex', 'toIndex']);
assert.match(__helpers.removeJSComments(swapCrewMembers.toString()), regex);

--seed--

--seed-contents--

js
const squad = [];

const firstAstronaut = {
  id: 1,
  name: "Andy",
  role: "Commander",
  isEVAEligible: true,
  priority: 3
};

function addCrewMember(crew, astronaut) {
  for (let i = 0; i < crew.length; i++) {
    if (crew[i].id === astronaut.id) {
      console.log("Duplicate ID: " + astronaut.id);
      return;
    }
  }
  crew.push(astronaut);
}

addCrewMember(squad, firstAstronaut);

const remainingCrew = [
  { id: 2, name: "Bart", role: "Pilot", isEVAEligible: false, priority: 8 },
  { id: 3, name: "Caroline", role: "Engineer", isEVAEligible: true, priority: 4 },
  { id: 4, name: "Diego", role: "Scientist", isEVAEligible: false, priority: 1 },
  { id: 5, name: "Elise", role: "Medic", isEVAEligible: true, priority: 7 },
  { id: 6, name: "Felix", role: "Navigator", isEVAEligible: true, priority: 6 },
  { id: 7, name: "Gertrude", role: "Communications", isEVAEligible: false, priority: 4 },
  { id: 8, name: "Hank", role: "Mechanic", isEVAEligible: true, priority: 2 },
  { id: 9, name: "Irene", role: "Specialist", isEVAEligible: true, priority: 5 },
  { id: 10, name: "Joan", role: "Technician", isEVAEligible: false, priority: 1 },
];

for (let i = 0; i < remainingCrew.length; i++) {
  addCrewMember(squad, remainingCrew[i]);
}

--fcc-editable-region--

--fcc-editable-region--