#javascript
#javascript
Вопрос:
Новичок в этом и проблема. Мне нужно запустить вычисление, которое затем сравнит созданную переменную со значением по умолчанию, указанным в начале, и, если отличается, переопределит значение по умолчанию и повторно запустит вычисление. Сейчас это все «если» и «еще»….
Примером может быть
let defaultCount = 3;
defaultCount = actualCount ? actualCount : defaultCount;
actualCount = a b.
Итак, проблема в том, что in the beginning actualCount
еще не определено. Итак, мне нужно проигнорировать это, а затем перезапустить, как только оно будет определено?
defaultCount
необходимо для получения сравнения.
Заранее спасибо!
итак, в верхней части кода у меня было
let appliedTaxRate = 0.45
if(incomeTaxRate == undefined) {
appliedTaxRate = appliedTaxRate
} else {
appliedTaxRate = incomeTaxRate
}
Между ними есть много вычислений, которые затем добавляются к приведенному ниже окончательному сравнению, они должны использовать значение по умолчанию для первой загрузки,
затем его нужно будет перезапустить, если новое вычисленное значение отличается от
начального значения по умолчанию. Что приводит к необходимости выполнения всего вычисления дважды.
и в основе у меня есть
//incomeTaxRate
if(totalEarnings>personalHigherUL) {
incomeTaxRate = personalAdvancedRate
} else {
if(totalEarnings>personalBaseUL) {
incomeTaxRate = personalHigherRate
} else {
if(totalEarnings>personalZeroUL) {
incomeTaxRate = personalBaseRate
} else {
incomeTaxRate = 0
}
}
}
Комментарии:
1. Почему бы не выполнить инициализацию
actualCount
defaultCount
только один раз, а затем просто обновить значение по мере необходимости?2. @Yoshi Я мог бы написать defaultCount = actualCount, но мои мысли были об использовании оператора if для обновления вычисления, если у него было обновление. У меня есть список операторов if, которые выполняются, и они полагаются на фактическое значение, а также влияют на него. итак, мне нужно вычислить новый фактический счет и перезапустить его — если я не завершу первый запуск, не проведу сравнение выходных данных и не запущу его снова?
3. Я предполагал, что это не так просто, но, учитывая ваш код, я не могу понять, в чем собственно проблема. Я думаю, вам нужно расширить свой вопрос, включив код, который делает его более очевидным.
4. @Yoshi Я добавил больше строк
5. Извините, но, видя это, я не уверен, что смогу помочь. У меня такое чувство, что вы сильно усложняете ситуацию, или это может быть просто проблема XY . Но, учитывая то, что вы показали, я бы предложил создать несколько чистых функций, которые возвращают значения на основе их входных данных (например
getIncomeTax(...)
,getAppliedTax(...)
, …). И таким образом разбивая общую проблему на несколько индивидуально проверяемых фрагментов кода. Это значительно упростит рассуждения, и исходная проблема может даже просто исчезнуть путем очистки.
Ответ №1:
Вам нужно будет объявить actualCount
как undefined, а затем проверить функцию, определена ли она. Если нет, defaultCount
используется.
let defaultCount = 3;
let actualCount = undefined;
checkCount();
actualCount = 1;
checkCount();
function checkCount() {
if (actualCount) {
defaultCount = actualCount;
}
console.log(defaultCount);
}
Комментарии:
1. Извините, если это глупый вопрос.. но чтобы затем извлечь значение defaultCount из функции, я бы просто использовал команду return, а не console.log?
2. Правильно 🙂 Я только зарегистрировал это, чтобы показать, как это работает. Вы бы сделали
return defaultCount;
3. Если это вам помогло, не могли бы вы выбрать мой ответ выше ^
4. все еще работаю над этим, но как только я туда доберусь, я буду благодарен
5. Рад помочь 🙂
Ответ №2:
Моя общая завершенная работа была такой:
let actualCount;
let function = mainCalculation() {
let function = primaryCalculation() {
...calculations
};
primaryCalculation();
primaryCalculation();
};
mainCalculation();
Я удалил операторы if / else и переменную по умолчанию.
Спасибо за всю помощь