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

Medium
ArrayObjectVK

Реализуйте функцию moveCard(board, fromColumn, toColumn, cardId, toIndex).

Контекст задачи: в тестовых заданиях на фронтенд для VK встречается kanban-доска с перемещением карточек между колонками.

board — объект вида:

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

Требования:

  • вернуть новый объект (не мутировать исходный),
  • удалить cardId из fromColumn,
  • вставить cardId в toColumn по индексу toIndex (если индекс больше длины — добавить в конец).

Примеры

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