首页 > 解决方案 > 如何用 JavaScript 找出 3 个值适合一个值的次数

问题描述

所以我有以下星座:

有一个总数,我需要找出 X、Y 和 Z 值适合它的次数。例如:

总计:10.000 X:5000 Y:3000 Z:1000

结果应该是:1 倍 X 1 倍 Y 2 倍 Z

我怎么能用JS计算呢?

if (Total >= X) {
  numberOfX = Math.floor(Total / X);
  if (Total % X !== 0) {
    divisionRest = Total - (X * numberOfX);
    if (divisionRest >= Y) {
      numberOfY = Math.floor(divisionRest / Y)
    }
  }
}

标签: javascript

解决方案


解决方案

您可以通过以下方式检查值适合的频率

  • 首先检查最高值适合的频率while(input >= 10000)。只要它适合递增您的计数器并从输入中减去该值input -= 10000
  • 然后将其应用于您的下一个值。

因为这里有多个值要检查,所以可以使用数组。
只要当前值适合从输入中减去它并递增计数器,就迭代数组。

当它不再适合时,请转到数组中的下一个值并对其执行相同操作,只要数组中的值不是>=剩余的输入(减法之后)。

这是完整的代码

let values = [10000, 5000, 3000, 1000];

let input = 508000;

let result = [];
for (let i = 0; i < values.length; i++) {
  let counter = 0;
  while (input >= values[i]) {
    counter++;
    input -= values[i];


  }
  result.push({
    "number": values[i],
    "counter": counter
  });
}




console.log(result);


推荐阅读