У меня есть два массива таких объектов:
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 },
];
Я хочу найти элементы из searchAndChangeFor
в officers
и изменить содержимое.Обычно, если у меня есть один элемент, я делаю это:
officers.map((item) => {
// I want to modify id: 56 and update officers here.
item.id === 56 ? { ...item, name: 'Change name for 56' } : item
});
Но мне нужно искать по массиву не один элемент, поэтому я пробовал это, но не удалось:
officers.map((item) => {
searchAndChangeFor.find((item2) => {
item.id === item2.id? { ...item, name: 'Change name for 56' } : item
});
});
Ожидаемый результат:
{ id: 20, name: 'Captain Piett' },
{ id: 24, name: 'General Veers' },
{ id: 56, name: 'New Name', additionalData: 1 },
{ id: 88, name: 'Commander Jerjerrod' }
Сходит с ума с массивом.Как я могу найти элементы в officers
на основе searchAndChangeFor
и изменить его имя?Я также хочу сохранить все остальные имеющиеся вещи у офицеров.