Альтернатива переключению, цикл в javascript для нескольких условий

#javascript #rest #switch-statement

Вопрос:

Я внедряю API rest, который включает в себя разбиение на страницы и сортировку.

параметры моего запроса:

  • для страницы подкачки (обязательно), ограничение ( необязательно).
  • для сортировки — order_by(обязательно), sort_by(необязательно)

Для конкретного запроса get пользователь может выполнить комбинацию следующих операций:-

  • используйте подкачку
  • используйте подкачку сортировку
  • используйте сортировку
  • используйте подкачку (без ограничений) сортировку( без сортировки)
  • используйте подкачку (с ограничением) сортировку( с помощью sort_by)

Я думал реализовать переключатель для этого, если в будущем будут добавлены дополнительные параметры запроса, то список может быть длинным

итак, есть ли альтернатива, в которой я могу упомянуть несколько условий ( в форме или в форме) и при этом не потерять производительность?

Основываясь на комментариях :- то же самое может быть достигнуто с помощью 5 утверждений if, но цель состоит в том, чтобы иметь масштабируемую, читаемую и низкую производительность ( если это возможно)

 function getResults(object) {  var title = object.params  switch (title) {  case 'page':  title = 'page'  break  case 'order_By':  title = 'orderBy'  default:  title = 'Unassigned'  break  }  .......( continued)  return title }  

Комментарии:

1. Я не понимаю, зачем вам нужно было что-то включать. если (сортировка), то сортировка; если (подкачка), то разбиение на страницы;

2. я не хочу использовать 5 операторов if, например, моя цель-сделать это с максимальной производительностью и меньшим количеством кода

3. «лучшая производительность» в большинстве случаев не требуется. Дополнительная задержка в несколько миллисекунд (скорее всего, наносекунд) всегда лучше, если она повышает читаемость и масштабируемость вашего кода

4. @Reyno мне нравится идея удобочитаемости и масштабируемости, каковы были бы ваши предложения в этом случае? чтобы использовать литералы switch или object или любой другой подход, о котором я не знаю

5. Я вижу только два случая, когда не нужно смотреть друг на друга, так что только два, если ( а не если еще, только 2, если). И у сорта может быть подусловие

Ответ №1:

Просто создайте объект, немного похожий на этот

 Page  PageSize (Limit i guess? Since paging in itself has no limit, just the pages)  Sort  SortDirection  

Я думаю, это должно вас устраивать?

Затем примените условия с помощью метода. Пример:

 var myPagingObject = {}; function applyPagingParameter(key, value) {  myPagingObject[key] = value; }  

Нет, если операторы нуждаются в подобном (за исключением, конечно, серверной части, но если вы стандартизируете 4 оператора if, которые можно использовать в масштабах всего приложения, почему бы и нет?)