指定要顯示的號碼數量。將100個號碼拆分爲N個相同長度的部分
例如如果 指定2,則結果應該爲0和100.如果指定3,則數字應爲0,50和100.如果指定4,則數字應爲0,33,67,100等。
每個顯示的數字之間應始終保持相同的長度。
指定要顯示的號碼數量。將100個號碼拆分爲N個相同長度的部分
例如如果 指定2,則結果應該爲0和100.如果指定3,則數字應爲0,50和100.如果指定4,則數字應爲0,33,67,100等。
每個顯示的數字之間應始終保持相同的長度。
for循環的解決方案:
const run = (max, num) => {
let result = [];
let part = max/(num - 1);
for(let i = 0; i < max; i += part) {
result.push(Math.round(i));
}
result.push(max);
return (result);
};
console.log(run(100, 4)); // [0, 33, 67, 100]
console.log(run(100, 5)); // [0, 25, 50, 75, 100]
console.log(run(100, 7)); // [0, 17, 33, 50, 67, 83, 100]
function numbers(number){
var max=100;
spacing = Math.floor(max/ (number-1));
var returnMe = [0];
var cur=spacing;
while(cur <= max){
returnMe.push(cur);
cur+=spacing;
}
return returnMe;
}
這很接近,但當'number'參數是4,7,8等時,它不會產生正確的結果。一方面,它應該圍繞循環中的各個數字,而不是'spacing'。 – nnnnnn
是的,我認爲dhilt答案是OP正在尋找。這總是給予#之間完全相同的增量,這些增量並不總是合計爲100。 –
如果你可以使用ES6這是一個很好的功能性的一行做到這一點:
const fn = (n, l) => [...Array(n)].map((i, id) => Math.floor(l/(n-1) * id))
console.log(fn(4,100))
console.log(fn(2,100))
當你想要整數時,當然不能總是有數字之間的確切距離 - 當數字不均勻分割時,你需要在某個地方舍入。
您希望N個整數(大約)從0到100均勻間隔(包括)? –
所以間距是'100 /(n-1)'?只需將其插入一個循環並做一些修整。直到你提出了一個合適的算法並且試圖用JS實現它之後,這不是JavaScript問題。 – nnnnnn
也許將標題改爲「將100個數字分成N個相同長度的部分」? – dhilt