I have two array of objects like this:
const officers: any[] = [
{ id: 20, name: 'Captain Piett' },
{ id: 24, name: 'General Veers' },
{ id: 56, name: 'Admiral Ozzel' },
{ id: 88, name: 'Commander Jerjerrod' }
];
const searchAndChangeFor: any[] = [
{ id: 56, name: 'New Name', additionalData: 1 },
];
I want to find elements from searchAndChangeFor in officers and modify content. Usually If I have one element I do this:
officers.map((item) => {
// I want to modify id: 56 and update officers here.
item.id === 56 ? { ...item, name: 'Change name for 56' } : item
});
But I need to search by array not single element so I've tried this but not succeeded:
officers.map((item) => {
searchAndChangeFor.find((item2) => {
item.id === item2.id? { ...item, name: 'Change name for 56' } : item
});
});
Expected Output:
{ id: 20, name: 'Captain Piett' },
{ id: 24, name: 'General Veers' },
{ id: 56, name: 'New Name', additionalData: 1 },
{ id: 88, name: 'Commander Jerjerrod' }
It goes crazy with array. How can I find elements in officers based on searchAndChangeFor and change its name? I also want to keep all other existing items in officers.
returninsidemapandfindor remove the{}for implicit returnsearchAndChangeForexist inofficers?searchAndChangeFor