代码之家  ›  专栏  ›  技术社区  ›  p u

如何从动态长度的javascript数组中创建n个块

  •  -1
  • p u  · 技术社区  · 8 年前

    我有一系列的 n长度(动态) 说830。。。我想把这个数组分成子数组 [0100],[100200]…..[800829]即在相同数量的块中 我该怎么做??

    this answer

    var i,j,chunk = 10;
    for (i=0,j=array.length; i<j; i+=chunk) {
        temparray = array.slice(i,i+chunk);
     }
    

    但正如我所描述的 i、 e动态长度(如果380)。如果一个块的编号是100,那么必须在末尾返回80

    1 回复  |  直到 7 年前
        1
  •  1
  •   ankitjain11    8 年前

    你可以试试这个

    function chunk(orig) {
      var n = Math.floor(orig.length / 100);
      var evenChunks = new Array(n).fill(0).reduce((agg, curr, index) => {
        agg.push(orig.splice(0, 100))
        return agg;
      }, []);
    
      return [].concat(evenChunks, [ orig ]);
    }
    

    chunk(new Array(830).fill(0))