将javascript数组范围分块为n个相等的部分?

时间:2019-03-04 11:04:01

标签: javascript

如何将此ans数组划分为n个相等的部分?
如果提供的输入是1-100,我希望输出以10个为大块,并在单独的行中显示。

function range(start, end) {
   var ans = [];
   for (let i = start; i <= end; i++) {
    ans.push(i);
   }
   return ans;
}

1 个答案:

答案 0 :(得分:1)

与此:

Array.prototype.chunk = function ( n ) {
      if ( !this.length ) {
          return [];
      }
      return [this.slice(0, n)].concat(this.slice(n).chunk(n));
    };

然后:

const splittendAns = ans.chunk(20);

在最后一行中,将数组分成长度为20的块。


请按以下示例操作:

// Suppose I have this array
// I want to split this array in 5 length arrays
const array = [
    1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
];

Array.prototype.chunk = function ( n ) {
    if ( !this.length ) {
        return [];
    }
    return [this.slice(0, n)].concat(this.slice(n).chunk(n));
};

const splittedArray = array.chunk(5);

console.log(array);
console.log('-----');
console.log(splittedArray);

输出:

[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 ]
-----
[ [ 1, 2, 3, 4, 5 ], [ 6, 7, 8, 9, 10 ], [ 11, 12, 13, 14, 15 ] ]