В этом случае все сводится к тому, какой метод вы хотите вернуть из самого массива.
Map вернет массив такой же длины, как и тот, который просматривался, Find как методвернуть первый элемент, прошедший входной тест для массива.
У вас был правильный разброс по состоянию, так что предыдущее состояние сначала вводится в возвращаемый результат, а затем оно перезаписывает карты памяти новыми, и (Я предполагаю ...) вводит остальные карты памяти, которые находятся в этом объекте, и перезаписывает определенный индекс следующим значением типа
Редактировать: возвращать только одно значение для карт памяти
intro: state.memoryCards.find((card, index) => {
const randomCard = Math.floor(Math.random() * state.memoryCards.length)
if(index === randomCard) {
return {
...state,
memoryCards: card.type
}
}
})