Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Написать функцию, которая принимает на вход от одного до трёх параметров и возвращает (https://javascript.ru/forum/misc/84581-napisat-funkciyu-kotoraya-prinimaet-na-vkhod-ot-odnogo-do-trjokh-parametrov-i-vozvrashhaet.html)

Arxi 20.10.2022 14:46

Написать функцию, которая принимает на вход от одного до трёх параметров и возвращает
 
Добрый день, помогите с задачей, пожалуйста.
Написать функцию, которая принимает на вход от одного до трёх параметров и возвращает объект.(js)
Первый параметр - число, обязательный параметр.
Второй параметр - строка, не обязательный параметр.
Третий параметр - массив строк, не обязательный параметр.

Должно выглядеть примерно так:
createError(code, message, detail) { /* тут тело функции */ }

Пример поведения:
createError(404);
// вернёт объект { code: 404, message: '' }

createError(400, 'Неправильный запрос');
// вернёт объект { code: 400, message: 'Неправильный запрос' }

createError(400, ['page не указано', 'limit должен быть в диапазоне от 1 до 20']);
// вернёт объект { code: 400, message: '', detail: ['page не указано', 'limit должен быть в диапазоне от 1 до 20'] }

createError(400, 'Неправильный запрос', ['page не указано', 'limit должен быть в диапазоне от 1 до 20']);
// вернёт объект { code: 400, message: 'Неправильный запрос', detail: ['page не указано', 'limit должен быть в диапазоне от 1 до 20'] }

рони 20.10.2022 18:48

Arxi,
:-?
function createError(code, message = '', detail) {
            if (Array.isArray(message)) {
                detail = message;
                message = ''
            };
            return Array.isArray(detail) ? {
                code,
                message,
                detail
            } : {
                code,
                message
            }
        }
        console.log(createError(404));
        // вернёт объект { code: 404, message: '' }

        console.log(createError(400, 'Неправильный запрос'));
        // вернёт объект { code: 400, message: 'Неправильный запрос' }

        console.log(createError(400, ['page не указано', 'limit должен быть в диапазоне от 1 до 20']));
        // вернёт объект { code: 400, message: '', detail: ['page не указано', 'limit должен быть в диапазоне от 1 до 20'] }

        console.log(createError(400, 'Неправильный запрос', ['page не указано', 'limit должен быть в диапазоне от 1 до 20']));
        // вернёт объект { code: 400, message: 'Неправильный запрос', detail: ['page не указано', 'limit должен быть в диапазоне от 1 до 20'] }

Arxi 24.10.2022 22:19

Огромное спасибо!!!


Часовой пояс GMT +3, время: 16:39.