Я предпочитаю, чтобы в моей кодовой базе было как можно меньше дублированного кода, и поэтому я постоянно ищу способы его уменьшить.
Однако я немного застрял в следующем случае: скажем, у меня есть метод, который анализирует вывод одной программы в объект, чтобы сделать его доступным для чтения в другой программе.
Мой текущий подход заключается в использовании регулярного выражения для сканирования ввода, чтобы сформировать новый объект для вывода.
Это создает длинный список операторов if, которые выглядят более или менее одинаково с небольшими различиями здесь и там. Есть ли значимый способ уменьшить дублирование кода здесь или это то, с чем мне придется смириться?
if ((match = block.match(/bssid=([A-Fa-f0-9:]{17})/))) {
parsed.bssid = match[1].toLowerCase();
}
if ((match = block.match(/freq=([0-9]+)/))) {
parsed.frequency = parseInt(match[1], 10);
}
if ((match = block.match(/mode=([^\s]+)/))) {
parsed.mode = match[1];
}
if ((match = block.match(/key_mgmt=([^\s]+)/))) {
parsed.key_mgmt = match[1].toLowerCase();
}