Javascript 如何从数字数组中删除数学上相消的值?

Javascript 如何从数字数组中删除数学上相消的值?,javascript,arrays,Javascript,Arrays,我的应用程序正在收集对预算值的一系列调整,以尝试达到一个目标。到目前为止,我正在将这些调整收集到一个数组中,并将它们的值相加,以显示需要削减多少才能达到目标: 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 //

我的应用程序正在收集对预算值的一系列调整,以尝试达到一个目标。到目前为止,我正在将这些调整收集到一个数组中,并将它们的值相加,以显示需要削减多少才能达到目标:

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不会改变总数,那么为什么要存储值?

为什么要存储削减?
cutTotal
还不够吗?任何计算和删除此类值的尝试都可能需要更多的处理器。在直接调整
cutTotal
时,我遇到了超出本摘要中未显示的定义限制的调整问题。收集调整并将其合计似乎可以解决问题,但可能并非绝对必要。“我遇到的问题是,调整超出了本摘要中未显示的限定范围”->没有更多的上下文,我们无法真正判断可以做什么或不可以做什么。从你提供给我们的信息来看,似乎你不需要跟踪每一次切割。这确实带来了一个问题:为什么需要存储它们。还要注意上面提到的过早优化。如果您没有遇到任何延迟,请将代码可读性和可维护性放在首位。只有这样,如果需要,进行优化