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