#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, которые можно использовать в масштабах всего приложения, почему бы и нет?)