我正在尝试将一个数字分配给一个数组。
例如,
const num = 30;
const maxNumPerElement = 10;
const arr = getDistributedArray(num, maxNumPerElement);
console.log(arr);
结果应该是[10, 10, 10]
另一个例子,
const num = 32;
const maxNumPerElement = 10;
const arr = getDistributedArray(num, maxNumPerElement);
console.log(arr);
结果应该是[8, 8, 8, 8]
最后一个例子,
const num = 34;
const maxNumPerElement = 10;
const arr = getDistributedArray(num, maxNumPerElement);
console.log(arr);
结果应该是[9, 9, 8, 8]
这是我的代码,只能工作到 98。如果达到 99,它就不再工作,我不知道为什么。
const num = 99;
const maxNumPerElement = 10;
if (num > maxNumPerElement) {
const numSubtitles = Math.ceil(num / maxNumPerElement);
const minNumPerElement = Math.floor(num / numSubtitles);
const numArray = new Array(numSubtitles).fill(minNumPerElement);
const remainder = num % minNumPerElement;
for (let i = 0; i < remainder; i++) {
numArray[i]++;
}
const sum = numArray.reduce(function (a, b) {
return a + b;
}, 0);
if (sum !== num) {
console.log("ERROR!!", num, numArray);
}
else {
console.log(num, numArray);
}
}
结果:ERROR!! 99 [9, 9, 9, 9, 9, 9, 9, 9, 9, 9]
这看起来很容易,但我无法解决。有没有简单的方法可以解决这个问题?
慕村9548890
相关分类