Javascript, сравнивающий буквенно-цифровые строки

1

У меня есть коллекция из примерно 100 строк, которые имеют следующий формат и повторяются.

aa-000-1
aa-000-7-8
aa-000-20-10

Я пытаюсь выполнить сравнение этих строк, чтобы классифицировать их на основе информации, которую я предоставляю (я просто распечатываю связанную категорию на данный момент). Я сделал бы это, подав их в функцию по одному за раз.

Некоторые категории являются прямыми, например:

Category A:
aa-000-8
aa-000-8-1
aa-000-8-2
aa-000-8-3
aa-000-8-5

Category B:
aa-000-8-4

Для чего я написал следующий код:

  var category_guid = 'aa-000-8-3';
  if(category_guid.charAt(7) === '8') {
    if(category_guid.charAt(9) === '4' ) {
      console.log('Category B');
    }
    else {
      console.log('Category A');
    }
  }

Однако в некоторых категориях есть смесь чисел, например:

Category C:
aa-000-2
aa-000-4-3
aa-000-9-4
aa-000-10-2
aa-000-10-3
aa-000-11-4
aa-000-13-1
aa-000-13-5

Если бы я продолжил с моим текущим кодом, это закончилось бы сотнями строк кодов инструкций if-else, несомненно, есть лучший способ сравнения? Каким будет наиболее эффективный способ проверки каждой строки и печати ее связанной категории?

Спасибо за чтение.

  • 0
    Этот вопрос не имеет достаточно данных, чтобы решить эту проблему. Каковы возможные категории, и как вы помещаете строку в определенную категорию? Пожалуйста, укажите все случаи.
  • 0
    Я бы прочитал это как «как получить алфавитную сортировку с числовой подгруппой», так что «а-9» предшествует «а-10»
Показать ещё 2 комментария
Теги:
string

1 ответ

0

Вы можете использовать метод .split() для категорий. Например, 'aa-000-8-1'.split('-') возвращает массив ['aa', '000', '8', '1']. Оттуда вы можете легко и чисто получить доступ к каждому номеру.

Подробнее о .split() вы можете прочитать здесь.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню