Перезапись переменной в начале вычисления JavaScript с помощью созданной переменной

#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 и переменную по умолчанию.

Спасибо за всю помощь