Как перезаписать переменную в цикле и сохранить ее значение после выхода из цикла?

У меня есть ассоциативный массив и несколько строк:


let fontWeight = new Map(
                [
                    ['Thin', "100"],
                    ['Light', "300"],
                    ['Regular', "400"],
                    ['Medium', "500"],
                    ['Bold', "700"],
                    ['Black', "900"]
                ]
            );

Так же в цикле у меня есть строка fontWeightStr. В этой строке находятся строки, которые беру из названий файлов со шрифтами. Если, например, есть файл 'Roboto-BoldItalic.ttf', то в fontWeightStr у меня строка "Bold".

Мне нужно на каждой итерации заменить содержимое fontWeightStr соответствующим значением ассоциативного массива. Для этого организовал такой перебор:


let fontWeightStr = 'Bold' // Для примера, в программе значения получены из имен файлов со шрифтами.

for (let i in fontWeight.keys()) {
    let key = fontWeight.keys()[i]; // получаем ключ из массива
    if (key == fontWeightStr) {
       fontWeightStr = fontWeight.get(fontWeightStr); // меняем содержимое строки на значение из массива
       break; // прерываем перебор
       }
}

Но этот цикл не дает результата. В fontWeightStr по прежнему находится строка "Bold", а должна быть строка "700". Я думаю, при выходе из цикла локальное значение уничтожается. Как правильно перезаписать переменную в этом случае?


Ответы (0 шт):