@eugenedrvnk

Адаптировать один метод под разные данные, или делать несколько методов?

Изначально в проекте была необходимость для удаления лишь одного элемента.
Функция для этого выглядела так:
const deleteItem = (id) => {
  ...delete logic...
}


Потом появилась необходимость добавить возможность удаления нескольких элементов сразу и здесь можно сделать по разному.

Сделать в той же функции поддержку множества элементов, но тогда функцию прийдётся переименовывать под множественное число, и предыдущие места использования функции, где удалялся один элемент - так же изменять (делать что бы вместо прокидывания одного айдишника, прокидывался массив с одним айдишником).
const deleteItems = (ids) => {
  ids.forEach((id) => {
    {...delete logic...}
  })
}


Либо же оставить и функцию для удаления единичного элемента, и для множества.
Т.е. вынести логику удаления элемента куда-то ещё и будет как-то так

const handler = (id) => {...delete logic...}

const deleteItem = (id) => handler(id)

const deleteItems = (ids) => {
  ids.forEach((id) => handler(id)
}


Есть какие-то статьи может по правильному именованию переменных/функций? Т.к. в таких ситуациях довольно часто возникают спорные моменты и непонимание как сделать правильнее.
  • Вопрос задан
  • 38 просмотров
Пригласить эксперта
Ответы на вопрос 2
Aetae
@Aetae
Тлен
const deleteItem = (...ids) => ids.forEach(handler);
и ничего менять не надо(только если возврат не использовался). :)
Вообще пофиг, item или itеms, по всякому бывает, важны соглашения.

Как именовать - смотри на интерфейсы стандартных объектов.
Ответ написан
Комментировать
@markak
Frontend developer
Можно сделать, используя метод filter.
const deleteItems = (ids) => {
  arr = arr.filter(item => !ids.some(id => id === item.id));
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
09 дек. 2021, в 00:28
50000 руб./за проект
09 дек. 2021, в 00:13
3000 руб./за проект
08 дек. 2021, в 23:45
9999 руб./за проект