У меня есть оператор if внутри цикла for in
, который работает нормально, но когда я добавляю оператор else
в конце, код ломается, так как переменная (в данном случае ключ) из цикла for..in
не передается в цикл else
. утверждение. Вот код:
config = {'test1':2, 'test2':2, 'test3':5, 'test4':8}
for (key in config) {
if (isNaN(item)) {
return item;
}
if (key.indexOf(baseCcy) !== -1) {
console.log("match config");
item = parseFloat(item).toFixed(config[key]);
return item;
} else {
item = parseFloat(item).toFixed(10);
return item;
}
}
baseCcy и item являются входными данными из angular из следующего кода: | {{fill.price | decimalFilter:baseCcy}}
Целью этого является создание пользовательского фильтра, и я делаю цикл for..in внутри фильтра для его достижения. До сих пор это работало хорошо, но оператор else просто ломал его. Суть оператора else в том, что если ни один из входных данных из item
не соответствует массиву конфигурации, вернуть элемент с 10 десятичными знаками.
Следует отметить, что когда я запускаю console.log key
после цикла for..in, он показывает мне только «test1», но когда я удаляю оператор else (только с двумя if), ключ console.log показывает мне «test1», « тест2", "тест3", "тест4". '