How can this code be reduced?
-
let profile = message.text; if (/^(фундаментальная информатика и информационные технологии|профиль 1)$/i.test(profile)) number = 1; if (/^(строительство|профиль 2)$/i.test(profile)) number = 2; if (/^(инженер по оборудованию|профиль 3)$/i.test(profile)) number = 3 if (/^(инспектор по технике безопасности|профиль 4)$/i.test(profile)) number = 4; if (/^(бухгалтерский учёт, анализ и аудит|профиль 5)$/i.test(profile)) number = 5; if (/^(продавец, контролёр-кассир|профиль 6)$/i.test(profile)) number = 6; if (/^(современная фотография|профиль 7)$/i.test(profile)) number = 7; if (/^(звукорежиссура аудиовизуальных искусств|профиль 8)$/i.test(profile)) number = 8;
-
The simplest thing to do. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map
const kvArray = [ ['(фундаментальная информатика и информационные технологии|профиль 1)', 1], ['(строительство|профиль 2)', 2], ['(инженер по оборудованию|профиль 3)', 3], // и так далее ] const myMap = new Map(kvArray); let profile = '(СТроиТельство|ПРОФиль 2)';
console.log(myMap.get(profile.toLowerCase()));
If the numbers are on order, you can even write in a simple set and use it. https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/Array/findIndex + 1
const kvArray = [
['(фундаментальная информатика и информационные технологии|профиль 1)'],
['(строительство|профиль 2)'],
['(инженер по оборудованию|профиль 3)'],
// и так далее
]let profile = '(СТроиТельство|ПРОФиль 2)';
let number = kvArray.findIndex(el => el == profile.toLowerCase()) + 1;
console.log(number);