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);


Log in to reply
 

Suggested Topics

  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2