0

我有一个由四个数字组成的数组,类似于[597103978, 564784412, 590236070, 170889704],我需要确保方差不超过 10%,例如对于上面的数组,由于数字 170889704,检查必须失败。

有人可以建议我一个很好的方法来做到这一点是 Javascript 吗?

提前致谢!

4

1 回答 1

0

我会使用Array.every

const arr = [597103978, 564784412, 590236070, 170889704];

const variance = (n, m) => {
  return Math.abs( (n - m) / n );
};

const isLessThanTenPercent = (n) => {
  return ( n < 0.1 );
};

const arrayIsGood = arr.every((n, i) => {

  // m is the next element after n
  const m = arr[i+1];
  if (Number.isInteger(m)) {
    const v = variance(n, m);
    return isLessThanTenPercent(v);
  } else {
    // if m is not an integer, we're at the last element
    return true;
  }

});

console.log({arrayIsGood});

于 2021-12-18T19:11:25.530 回答