Задача про JavaScript-функцию - Академия Selectel

Задача про JavaScript-функцию

Тирекс
Тирекс Самый зубастый автор
20 ноября 2024

Будет полезна тем, кто хочет испытать свои навыки программирования в нестандартных ситуациях.

Изображение записи

Эту задачу мы подготовили совместно с нашими друзьями — «Эльбрус Буткемп».

Условие

Фронтенд-разработчика Сашу пригласили на собеседование в компанию его мечты. После того как он успешно прошел два этапа, остался последний — техническое задание. Накануне принимающему специалисту показалось, что испытание не соответствует навыкам Саши, поэтому он его решил усложнить. Ведь важно проверить не только технические навыки будущего коллеги, но и способность решать простые задачи с рядом ограничений. 

Задача

Помогите Саше выполнить задание и попасть на работу мечты. Напишите JavaScript-функцию с одним параметром n, соблюдая несколько требований от специалиста.

  • Если входной параметр равен 1, функция должна вернуть 2.
  • Если входной параметр равен 2, функция должна вернуть 1.
  • Остальные значения параметра n в задаче не участвуют.
  • Не допускается использование условных конструкций: if/else, switch/case, тернарных операторов.

Предоставьте три варианта решения, один из которых выполняется в одну строку, например function example () {   // код }.

Пример запуска функции: 


    console.log(example(1)); // 2
console.log(example(2)); // 1

Решение

Задачу можно решить тремя способами: использовать объекты для хранения значений, массивы с индексированными результатами и однострочную функцию с массивом, где индекс соответствует значению параметра. 

Использование объекта для хранения значений


    function example(n) {
    return {1: 2, 2: 1}[n];
}

В первом варианте сохраняем соответствие между параметрами и их ответами. Например, если передать в функцию параметр 1, то вернет 2, а если передать 2, то — 1.

Использование массива с индексированными результатами


    function example(n) {
    return [2, 1][n - 1];
}

Второй вариант решаем аналогично. В функции [2, 1][n — 1] при n = 1 берем из массива элемент с индексом 0 — это первое число равное 2. При n = 2, получаем элемент с индексом 1 — это значение 1.

Однострочное решение


    const example = (n) => 3 - n

В третьем варианте выполняем стандартное вычисление. Преимущество такого способа — в лаконичности.

Материалы для обучения и практики