Build a Space Mission Roster: Step 20

Please i need help for this step 20. according the console, everything is fine, but i still get this error message from freeCodeCamp:

You should use a for loop to iterate through the EVAReadySquad array and log the name of each astronaut.

here is the link to this workshop:

Build a Space Mission Roster - Step 20

here is my code so far:

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]);

}

function swapCrewMembers(crew, fromIndex, toIndex) {

if (

fromIndex < 0 || 

toIndex < 0 ||

fromIndex >= crew.length ||

toIndex >= crew.length

) {

console.log("Invalid crew indices");

return;

}

const updatedCrew = crew.slice();

updatedCrew[fromIndex] = updatedCrew.splice(toIndex, 1, updatedCrew[fromIndex])[0];

return updatedCrew;

}

const updatedSquad = swapCrewMembers(squad, 2, 5);

function sortByPriorityDescending(crew) {

for (let i = 0; i < crew.length - 1; i++) {

for (let j = 0; j < crew.length - 1 - i; j++) {

  if (crew\[j\].priority < crew\[j + 1\].priority) {

    const temp = crew\[j\];

    crew\[j\] = crew\[j + 1\];

    crew\[j + 1\] = temp;

  }

}

}

}

function getEVAReadyCrew(crew) {

const eligible = [];

for (const astronaut of crew) {

if (astronaut.isEVAEligible) eligible.push(astronaut);

}

sortByPriorityDescending(eligible);

return eligible;

}

const EVAReadySquad = getEVAReadyCrew(updatedSquad);

for (let i = 0; i < EVAReadySquad.length; i++) {

console.log(EVAReadySquad[i][“name”]);

}

hi and welcome to the forum.

Please edit your post and add a link to the exercise you are attempting.
thanks

hi. I’ve added the link now. Thank you.

i ‘ve found the solution. this for loop has been accepted by freeCodeCamp:

[mod edit solution removed]

Well done for solving. I’ve removed the solution as it’s against the rules.

A for of or a for in loop works. Your original loop worked with dot notation as well.

1 Like