Как удалить математически отменяющие значения из массива чисел?

#javascript #arrays

#javascript #массивы

Вопрос:

Мое приложение собирает ряд корректировок бюджетных значений, чтобы попытаться достичь цели. Пока что я собираю корректировки в массив и суммирую их значения, чтобы показать, сколько еще нужно сократить для достижения цели:

 const goal = 25;
let cutTotal = 0;
let remaining = 0;
let cuts = [];

function update (value) {
  // Values are numbers: -1, 1, 0.1, -0.1. This function gets called
  // when any update is made to a budget value.
  cuts.push(value);

  cutTotal = 0;
  cuts.forEach(function (value) {
    cutTotal  = value;
  });

  remaining = goal - cutTotal;
}
  

Это работает так, как ожидалось, но я думаю, что должен быть достаточно эффективный способ управления длиной cuts массива путем удаления избыточных значений. (Добавление и вычитание 1 из общего числа не изменяет общее количество, так зачем хранить значения?)

Комментарии:

1. Зачем вообще хранить сокращения? Не cutTotal достаточно?

2. Любая попытка вычислить и удалить такие значения, скорее всего, потребует больше ресурсов процессора, чем просто нет.

3. Преждевременная оптимизация — корень всего зла

4. При cutTotal прямой настройке я столкнулся с проблемами, связанными с настройками, выходящими за пределы определенных пределов, не показанных в этом резюме. Сбор корректировок, а затем их суммирование, казалось, решили проблему, но, возможно, не являются строго необходимыми.

5. «Я столкнулся с проблемами с настройками, выходящими за пределы определенных пределов, не показанных в этом обзоре» -> Без дополнительного контекста мы не можем точно сказать, что можно сделать, а что нет. Из информации, которую вы нам предоставили, кажется, что вам не нужно отслеживать каждое сделанное сокращение. Это действительно поднимает вопрос о том, зачем вам вообще нужно их хранить. Также остерегайтесь преждевременной оптимизации, как упоминалось выше. Если вы не испытываете никаких задержек, поставьте на первое место читаемость кода и удобство обслуживания. Только тогда оптимизируйте, если это необходимо