Как перезаписать переменную в цикле и сохранить ее значение после выхода из цикла?
У меня есть ассоциативный массив и несколько строк:
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". Я думаю, при выходе из цикла локальное значение уничтожается. Как правильно перезаписать переменную в этом случае?