Перемещение карточки между колонками

Medium
ArrayObjectVK

Встречается в тестовых заданиях VK. Реализуйте функцию moveCard(board, fromColumn, toColumn, cardId, toIndex) для kanban-доски.

board — объект, где каждый ключ — колонка, значение — массив ID карточек:

{
  backlog: ['task-1', 'task-2'],
  inProgress: ['task-3'],
  done: []
}

Функция должна:

  • вернуть новый объект, не мутируя исходный,
  • удалить cardId из fromColumn,
  • вставить cardId в toColumn по индексу toIndex (если индекс больше длины — добавить в конец).
const board = {
  backlog: ['a', 'b'],
  inProgress: ['c'],
  done: []
};

moveCard(board, 'backlog', 'inProgress', 'b', 1);
// { backlog: ['a'], inProgress: ['c', 'b'], done: [] }
Ваш код - JavaScript
Результаты
Нажмите «Запуск» для выполнения кода