I am trying to code this in ES6. Below is what I am trying to achieve. Let's say I have an array of objects called schools.
let schools = [
{name: 'YorkTown', country: 'Spain'},
{name: 'Stanford', country: 'USA'},
{name: 'Gymnasium Achern', country: 'Germany'}
];
Now, I want to write a function called editSchoolName which will take 3 parameters, schools (which is the array I have defined above), oldName and name.
I will pass the name of the school in the parameter oldName and that name should be updated with the value in the parameter name.
I don't want to change the state of the variable schools so I am using a map function which will return a new array with the changes.
The editSchoolName function will be called like this -
var updatedSchools = editSchoolName(schools, "YorkTown", "New Gen");
Here, the name YorkTown should be replaced with the name New Gen. So the expected value of the array updatedSchools should be -
let updatedSchools = [
{name: 'New Gen', country: 'Spain'},
{name: 'Stanford', country: 'USA'},
{name: 'Gymnasium Achern', country: 'Germany'}
];
This is how my editSchoolName function looks like -
const editSchoolName = (schools, oldName, name) =>
schools.map(item => {
if (item.name === oldName) {
/* This is the part where I need the logic */
} else {
return item;
}
});
Need help in making the change in the editSchoolName function to achieve the above mentioned desired result.