Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Выполнение проверки массива (https://javascript.ru/forum/misc/84962-vypolnenie-proverki-massiva.html)

Tri 17.02.2023 11:36

Выполнение проверки массива
 
Здраствуйте

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

Пробовал пойти через typrof, но не вышло

Прошу помочь с кодом

// Функция возвращает название месяца по его номеру.
// Например getMonthName(1) должен вернуть строку "Январь".
// В случае, если месяца с таким номером нет, возвращается null.
function getMonthName(index) {
  
}

export { getMonthName };


import { getMonthName } from "./index";

it("Проверка существующего месяца", () => {
  expect(getMonthName(1)).toBe("Январь");
  expect(getMonthName(2)).toBe("Февраль");
  expect(getMonthName(3)).toBe("Март");
  expect(getMonthName(4)).toBe("Апрель");
  expect(getMonthName(5)).toBe("Май");
  expect(getMonthName(6)).toBe("Июнь");
  expect(getMonthName(7)).toBe("Июль");
  expect(getMonthName(8)).toBe("Август");
  expect(getMonthName(9)).toBe("Сентябрь");
  expect(getMonthName(10)).toBe("Октябрь");
  expect(getMonthName(11)).toBe("Ноябрь");
  expect(getMonthName(12)).toBe("Декабрь");
});

it("Проверка несуществующего месяца", () => {
  expect(getMonthName(-1)).toBeNull();
  expect(getMonthName(15)).toBeNull();
  expect(getMonthName("дерево")).toBeNull();
});

рони 17.02.2023 12:02

Tri,
function getMonthName(index) {
    return {1 : 'Январь', 2 : 'Февраль', ...}[index] || null
}

рони 17.02.2023 12:15

Tri,
если хочется погорячее)))
let months = {
    "1": "Январь",
    "2": "Февраль",
    "3": "Март",
    "4": "Апрель",
    "5": "Май",
    "6": "Июнь",
    "7": "Июль",
    "8": "Август",
    "9": "Сентрябрь",
    "10": "Октябрь",
    "11": "Ноябрь",
    "12": "Декабрь"
}
months = new Proxy(months, {
  get(target, key) {
    if (key in target) {
      return target[key];
    } else {

      return null;
    }
  }
});
function getMonthName(index) {
    return months[index]
}
alert(getMonthName(-1));
alert(getMonthName(12));
alert(getMonthName("дерево"));


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