将数字从1到N拆分为多个部分

时间:2016-07-30 15:10:56

标签: javascript

我需要将一个数字拆分为多个部分

我想要每个部分中每个连续数字之间的部分数量

例如

如果给定的数字是20且部分的数量是3 然后需要将数字1到20分成三个部分。

所以结果将是

第1部分= [1,4,7,10,13,16,19] //之间的任何

第2节= [2,5,8,11,14,17,20]

第3节= [3,6,9,12,15,18]

我正在使用javascript来执行此操作....任何想法

抱歉我的英文不好

2 个答案:

答案 0 :(得分:4)

您可以使用两个嵌套的for循环,并将这些部分和值计算到最大值

function getSection(sections, max) {
    var value, result = [], i;
    for (i = 1; i <= sections; i++) {
        result.push([]);
        for (value = i; value <= max; value += sections) {
            result[i - 1].push(value);
        }
    }
    return result;
}

console.log(getSection(3, 20));

答案 1 :(得分:1)

类似的东西:

function get_s(s_cnt, w_num) { 
    var a = new Array(s_cnt), b = Math.ceil(w_num/s_cnt), c = w_num; 
    for (var i=0; i<s_cnt; i++) {
        var b_ = (b < c) ? b : c; c -= b;
        a[i] = new Array(b_); 
        for (var j=0; j<b_; j++) {
            a[i][j] = j*s_cnt + i + 1;
        }
    } 
    return a; 
}
var s = get_s(3,20);
for (var i=0; i<3; i++) console.log("section "+(i+1)+": "+s[i].join(", "));